我有一個varchar列,每個字段包含一個單詞,但在該單詞前後有管道字符的隨機數。將多個重複字符替換爲一個
事情是這樣的:
MyVarcharColumn
'|||Apple|||||'
'|||||Pear|||||'
'||Leaf|'
當我查詢表,我希望將多個管道更換到一個單一的一個,所以結果會是這樣:
MyVarcharColumn
'|Apple|'
'|Pear|'
'|Leaf|'
無法
圖如何用REPLACE函數解決它,任何人都知道?
我有一個varchar列,每個字段包含一個單詞,但在該單詞前後有管道字符的隨機數。將多個重複字符替換爲一個
事情是這樣的:
MyVarcharColumn
'|||Apple|||||'
'|||||Pear|||||'
'||Leaf|'
當我查詢表,我希望將多個管道更換到一個單一的一個,所以結果會是這樣:
MyVarcharColumn
'|Apple|'
'|Pear|'
'|Leaf|'
無法
圖如何用REPLACE函數解決它,任何人都知道?
vkp的方法絕對可以解決您的問題。這樣的作品,並且還將在其他各種情況下工作的另一種方法,用三REPLACE()
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||', '|', '><'), '<>',''), '><','|')
這種方法將讓你保持多個字符串之間的分隔符,其中VPK先生的方法Concat的字符串和在開始和結束時劃定界限。
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||Banana||||||||||', '|', '><'), '<>',''), '><','|')
一種方法是用空白替換所有的|
,並在字符串的開頭和結尾添加管道字符。
select '|'+replace(mycolumn,'|','')+'|' from tablename
謝謝,它解決了我的情況,但@ dfundako的解決方案是更通用 – Avithohol
這個人是相當真棒:) – vacip
@dfundako這是更加靈活,標記爲解決方案 – Avithohol