2016-05-06 25 views
1

我有一個varchar列,每個字段包含一個單詞,但在該單詞前後有管道字符的隨機數。將多個重複字符替換爲一個

事情是這樣的:

MyVarcharColumn 
'|||Apple|||||' 
'|||||Pear|||||' 
'||Leaf|' 

當我查詢表,我希望將多個管道更換到一個單一的一個,所以結果會是這樣:

MyVarcharColumn 
'|Apple|' 
'|Pear|' 
'|Leaf|' 
無法

圖如何用REPLACE函數解決它,任何人都知道?

回答

2

vkp的方法絕對可以解決您的問題。這樣的作品,並且還將在其他各種情況下工作的另一種方法,用三REPLACE()

SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||', '|', '><'), '<>',''), '><','|') 

這種方法將讓你保持多個字符串之間的分隔符,其中VPK先生的方法Concat的字符串和在開始和結束時劃定界限。

SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||Banana||||||||||', '|', '><'), '<>',''), '><','|') 
+0

這個人是相當真棒:) – vacip

+0

@dfundako這是更加靈活,標記爲解決方案 – Avithohol

6

一種方法是用空白替換所有的|,並在字符串的開頭和結尾添加管道字符。

select '|'+replace(mycolumn,'|','')+'|' from tablename 
+0

謝謝,它解決了我的情況,但@ dfundako的解決方案是更通用 – Avithohol

相關問題