SSIS - 删除字符X,除非后面跟着字符Y.

时间:2017-10-17 09:39:42

标签: sql-server ssis

假设我从文本文件中导入了以下数据集:

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中的import tekst文件组件,但是当我将列分隔符设置为"时会出错。如果我没有设置分隔符,它会将“Texas,USA”中的逗号视为拆分分隔符....

有任何建议/想法吗?

文件文件太大,无法为每一行手动更改此内容。

1 个答案:

答案 0 :(得分:2)

关于最后一次""'的警告,但是:

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