我有一个varchar列,每个字段包含一个单词,但是单词前后会有随机数量的管道符号。
就像这样:
MyVarcharColumn
'|||Apple|||||'
'|||||Pear|||||'
'||Leaf|'
当我查询这个表时,我希望将多个竖线替换为单个竖线,以使结果像这样:
MyVarcharColumn
'|Apple|'
'|Pear|'
'|Leaf|'
无法通过REPLACE函数解决问题,有人知道如何解决吗?
我有一个varchar列,每个字段包含一个单词,但是单词前后会有随机数量的管道符号。
就像这样:
MyVarcharColumn
'|||Apple|||||'
'|||||Pear|||||'
'||Leaf|'
当我查询这个表时,我希望将多个竖线替换为单个竖线,以使结果像这样:
MyVarcharColumn
'|Apple|'
'|Pear|'
'|Leaf|'
vkp的方法绝对可以解决您的问题。另一种行之有效的方法,也适用于各种其他情况,是使用三个REPLACE()
函数。
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||', '|', '><'), '<>',''), '><','|')
这种方法可以让您在多个字符串之间保留分隔符,而 Mr. VPK 的方法会将字符串合并,并在开头和结尾加上分隔符。
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||Banana||||||||||', '|', '><'), '<>',''), '><','|')
一种方法是将所有的|
替换为空格,并在字符串开头和结尾添加一个管道符。
select '|'+replace(mycolumn,'|','')+'|' from tablename
"<tag>"
。 - Chris Marisic