Sql server 文本文件的条件分割变换
我在一个文本文件中有这样的数据,我想基于一列进行拆分。我在SSIS中使用条件转换尝试了这一点。我的数据如下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
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中查看这些列以进行调试。