Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 文本文件的条件分割变换_Sql Server_Sql Server 2008_Ssis - Fatal编程技术网

Sql server 文本文件的条件分割变换

Sql server 文本文件的条件分割变换,sql-server,sql-server-2008,ssis,Sql Server,Sql Server 2008,Ssis,我在一个文本文件中有这样的数据,我想基于一列进行拆分。我在SSIS中使用条件转换尝试了这一点。我的数据如下 CSH1364300 NTT Nissan Mhangura NISSAN NISSAN 3.0T/D DJ55 ADNJ550000A000337 J55-3374 FRX391NW 85M19690 1 1 13/01/2012Mr Mair

我在一个文本文件中有这样的数据,我想基于一列进行拆分。我在SSIS中使用条件转换尝试了这一点。我的数据如下

CSH1364300   NTT Nissan Mhangura                          NISSAN              NISSAN 3.0T/D DJ55       ADNJ550000A000337   J55-3374  FRX391NW  85M19690            1         1  13/01/2012Mr    Mairosi Melows                                       0182939060     0832626733     0832626733   E     Mr Xioang Ching                                     NULL                                         Samuel            199396PRIVATE BAG X1                Renkers NORTH                                           1741      2400          1349          ?             55            ?             3804          
CSH1364300   NTT Nissan Chivhu                          NISSAN              NAVARA 2.5 4X2 N30       MNTNCGD40Z0002046   N300000211HHS788NW  85M19910            1         1  13/01/2012Mr          Forest Gump                                0187862724     NULL           NULL         A     Mairos  Motors                                   null                                         Samuel            85251 Stoner Road                                                  Charlotteville                 4900      1395          14941.5       ?             ?             ?             16336.5       
MTP90961     NORTHERN MOTORS CHITOMBO                       DISCOVERY 4         LANDROVER DISCOLDS       SALLAAAF3BA580608   BA580608  DYT433FS  55W84243            23        0  16/01/2012Mr    M     George Jungle                               |              NULL           0824691669   E     JUGGLE CANTEEN/A                            sparkywp@mweb.co.za                          MAIDEI HAVATIDI   24496 
CSH92041     NORTHERN MOTORS CHITOMBO                       Volvo               S40 2006 Model 544       YV1MS685162192177             BM40PYGP  55D10150            18        0  16/01/2012Miss  S    Rotheram                                   |              |              0837170017   E     Miss S Simabnegavi                                   NONE GIVEN                                   Sarah Ndipeiwo          108767
CRE1364300   NTT Nissan Chivhu                          NISSAN              NISSAN NP 300 2K09       ADNK090000A000607   K09-6075  HKN637NW  85M19920            1         1  13/01/2012Mnr                                                    0761539867     0761539867     0761539867   A     City Of Valleyland                                 null                                         Samuel           75620 P O Box 495                                                  Chegutu                    2570      829.4         551.19        ?             55            ?             1435.59       
我希望所有与NORTHERN MOTORS CHITOMBO的争吵都进入他们自己的档案,其余的都进入另一个档案。我的条件表达式如下:

SUBSTRING([Column 0],14,41) == "NOTHERN MOTORS CHITOMBO"
它没有返回期望的结果。2008年在用技术投标

什么是“未返回预期结果”?一个明显的问题是,您的子字符串表达式有“NORTHERN”,但数据有“NORTHERN”,因此它永远不会匹配

我不知道您在数据流中指定了哪些列名,但[column 0]建议使用第一列,而不是第二列。您是否需要[Column 1]来代替


最后,您的SUBSTRING()表达式可能不正确,因为您要查找的字符串长度不是41个字符,而是24个字符,因此SUBSTRING([列1],1,24)更可能是正确的。

感谢您的编辑工作。尽管在类似这样的情况下,应该返回记录的查询在单词northern中缺少R,但我发现在条件拆分之前添加派生列转换很有帮助。在您的情况下,我的派生列将有一个新列,
WTF
,它的值将是
SUBSTRING([Column 0],14,41)
,然后我可以连接一个数据查看器来完成转换,并在那里检查值。在其中添加
len(WTF)
列也可能有帮助。这还有一个额外的好处,即您的条件拆分更加清晰
(WTF==“NORTHERN MOTORS CHITOMOB”)
以增加一些记忆为代价,对单词NORTHERN缺少一个N这一事实表示担忧。我已经暗示了这一点。这不是问题所在。此文本文件被视为只有一列,因此列为0。因此该列必须如所示。感谢您的建议,但我仍然无法获得满足cr的行数iteria正在被路由到预期的目的地您仍然没有确切地解释什么不起作用。是没有行被路由,还是只有一些行?还是完全其他什么?不管怎样,我强烈建议您开始将文件作为多列处理,这样处理数据会容易得多。很抱歉OMISI在上,但没有任何行被路由到满足条件的目标。正如我所提到的,字符串长度的SUBSTRING()参数似乎错误;是否检查了它?是否尝试了FINDSTRING()相反?再说一遍,我强烈建议您将数据视为多列,因为除了更易于使用之外,您还可以在data viewer中查看这些列以进行调试。