在SQL中清除CSV字符串/ varchar

时间:2013-04-05 18:09:07

标签: sql sql-server

我在varchar字段中有一些怪癖,它被指定用作我想要清理的CSV(逗号分隔值)。

例如额外的逗号:val1, ,val2, val3或尾随逗号val1, val2,

如何制作用, ,替换,的SQL,如果是,则删除最后一个字符?

3 个答案:

答案 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 '%,'