1

我有表格test( ID Numeric(11,0), report varchar(255) ) 和数据如下

1   ,Age,,,,,,family_status,,,,,,
2   ,,,,,,,,retaliation,hostile environment,,,,
3   ,,,,,,,,,,,,,
4   ,,,,,,,,retaliation,,,,,
5   ,,,,,,,,,hostile environment,,,,
6   ,Age,,,,,,,,,,,,
7   ,,,,national_origin,,,,,,,,,
8   Sex,,,,,,,,,,,,,
9   ,,,,national_origin,,disability,,retaliation,,,,,
10  Sex,,,,,,,,retaliation,,,,,
11  ,,,,,,,,

我想通过替换或使用任何其他数据来删除额外的逗号来更新此表,以便数据看起来

1   Age,family_status
2   retaliation,hostile environment
3   
4   retaliation
5   hostile environment
6   Age
7   national_origin,
8   Sex
9   national_origin,disability,retaliation
10  Sex,retaliation
11  

我尝试使用以下语句,但不确定如何循环,以便检查并删除所有逗号

UPDATE table test SET report = replace(report , ',,', ',')
4

1 回答 1

2

如果您只是将其作为一次性任务(而不是您希望重复使用的脚本化过程),您总是可以重复运行此查询,直到更新 0 行

UPDATE table test SET report = replace(report , ',,', ',')
WHERE report like '%,,%'

如果您需要一遍又一遍地执行此操作,或者将其放入程序中,我建议您使用您的程序(非 SQL 代码)在您有更好的文本操作命令的地方进行替换。

如果您对此不满意,请查看我写的关于替换字符串中重复空格的类似问题的这篇博客文章。

于 2013-04-15T23:17:00.890 回答