我在varchar字段中有一些怪癖,它被指定用作我想要清理的CSV(逗号分隔值)。
例如额外的逗号:val1, ,val2, val3
或尾随逗号val1, val2,
如何制作用, ,
替换,
的SQL,如果是,
则删除最后一个字符?
答案 0 :(得分:2)
如果使用oracle db
,则可以使用regexp_replace
函数
select REGEXP_REPLACE(REGEXP_REPLACE('val1, ,val2, val3,', ',\s,', ','),'[,]$','')
from dual
在MySql中,您可以像Rasika's Blog
一样编写自己的函数答案 1 :(得分:1)
SELECT REPLACE(columnName, ', ,', ', ')
FROM TableName
这可能无法始终有效,尤其是当逗号之间有多个空格时。
答案 2 :(得分:0)
最终使用了类似的选择器并替换
-- clean tags, remove empty tags
Update [myTable]
set [taglist] = REPLACE([taglist], ', ,', ', ')
WHERE [taglist] like '%, ,%' -- not really needed, I know
-- remove last comma
Update [myTable]
set [taglist] = SUBSTRING([taglist], 0, LEN([taglist]))
WHERE [taglist] like '%,'