2017-10-17 55 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