2017-10-17 21 views
1

删除字符X比方说,我有以下数据集从一个文本文件导入:SSIS - 除非它后面标记Y

Data 
-------------------- 
1,"John Davis","Germany" 
2,"Mike Johnson","Texas, USA" 
3,"Bill "The man" Taylor","France" 

我正在寻找一种方式来删除数据每",除非它后面或者在,之前。

所以在我的情况下,数据应该成为:

Data 
-------------------- 
1,"John Davis","Germany" 
2,"Mike Johnson","Texas, USA" 
3,"Bill The man Taylor","France" 

我在SSIS导入tekst文件组件试了一下,但是当我设置列分隔符"给出一个错误。如果我没有设置分隔符,它会将“Texas,USA”中的逗号看作分割分隔符......

任何建议/想法?文本文件太大,无法为每行手动更改,因此这不是一个选项。

+2

全部替换”,“以|(管道或其他)然后你就可以删除所有”的文件,并使用该|作为列分隔符。 –

+0

在Excel中复制数据。使用“文本到列”并选择以逗号分隔的分隔符。然后你可以通过替换不必要的'''来替换它们。 –

回答

1

位上的最后一个虎头蛇尾的“”“但是:

Create table #test ([Data] nvarchar(max)) 

insert into #test values ('1,"John Davis","Germany"'   ) 
insert into #test values ('2,"Mike Johnson","Texas, USA"'  ) 
insert into #test values ('3,"Bill "The man" Taylor","France"') 

select replace(replace(replace(replace([Data],',"',',~'), '",','~,'),'"', ''),'~','"') + '"' 
from #test