SQL删除字符串中间的额外逗号

时间:2016-02-09 16:00:21

标签: sql tsql sql-server-2012

我有这样的数据,,a,,c,,,,,i,j,k,,m,,,,,
我需要删除额外的逗号,使其看起来像a,c,i,j,k,m

我正在使用MS SQL Server 2012

1 个答案:

答案 0 :(得分:5)

有一个很酷的技巧:

select replace(replace(replace(col, ',', '><'), '<>', ''), '><', ',')

这消除了所有重复的逗号,但不包括开头和结尾的逗号。如果值中没有空格,我建议用空格替换逗号然后再返回,这样就可以使用修剪函数了:

select replace(ltrim(rtrim(replace(replace(replace(replace(col, ',', '><'), '<>', ''), '><', ','), ',', ' '))), ' ', ',')

我不确定是否有更漂亮的方法,除非你定义自己的功能。