我有一个varchar列,每个字段都包含一个单词,但在单词前后都有随机数的管道字符。
这样的事情:
MyVarcharColumn
'|||Apple|||||'
'|||||Pear|||||'
'||Leaf|'
当我查询表时,我希望将多个管道替换为单个管道,因此结果如下:
MyVarcharColumn
'|Apple|'
'|Pear|'
'|Leaf|'
无法弄清楚如何使用REPLACE函数解决它,有人知道吗?
答案 0 :(得分:6)
一种方法是用空格替换所有|
,并在字符串的开头和结尾添加管道字符。
select '|'+replace(mycolumn,'|','')+'|' from tablename
答案 1 :(得分:3)
vkp的方法绝对解决了你的问题。另一种有效的方法,也适用于其他各种情况,使用三REPLACE()
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||', '|', '><'), '<>',''), '><','|')
此方法允许您在多个字符串之间保留分隔符,其中VPK先生的方法将连接字符串并在开头和结尾放置一个分隔符。
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||Banana||||||||||', '|', '><'), '<>',''), '><','|')