0

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

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

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

4

3 回答 3

2

regexp_replace如果使用 oracle db,则可以使用函数

select  REGEXP_REPLACE(REGEXP_REPLACE('val1, ,val2, val3,', ',\s,', ','),'[,]$','')
from dual

在 MySql 中,您可以编写自己的函数,就像在Rasika 的博客中一样

于 2013-04-05T18:18:40.003 回答
1
SELECT REPLACE(columnName, ', ,', ', ')
FROM   TableName

这可能并不总是有效,尤其是当逗号之间有多个空格时。

于 2013-04-05T18:10:20.180 回答
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 '%,'
于 2013-04-05T19:06:35.843 回答