Avi*_*hol 2 sql t-sql sql-server-2008
我有一个varchar列,每个字段包含一个单词,但在单词前后有随机数字的管道字符.
像这样的东西:
MyVarcharColumn
'|||Apple|||||'
'|||||Pear|||||'
'||Leaf|'
Run Code Online (Sandbox Code Playgroud)
当我查询表时,我希望将多个管道替换为单个管道,因此结果如下:
MyVarcharColumn
'|Apple|'
'|Pear|'
'|Leaf|'
Run Code Online (Sandbox Code Playgroud)
无法弄清楚如何使用REPLACE函数解决它,有谁知道?
一种方法是|用空格替换所有空格并在字符串的开头和结尾添加管道字符.
select '|'+replace(mycolumn,'|','')+'|' from tablename
Run Code Online (Sandbox Code Playgroud)
vkp的方法绝对可以解决您的问题。另一种可行的方法(也可以在多种其他情况下使用)是使用三重REPLACE()
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||', '|', '><'), '<>',''), '><','|')
Run Code Online (Sandbox Code Playgroud)
该方法将允许您在多个字符串之间保持定界符,VPK先生的方法将连接字符串并在开始和结束处放置delim。
SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||Banana||||||||||', '|', '><'), '<>',''), '><','|')
Run Code Online (Sandbox Code Playgroud)