从列中删除逗号

时间:2017-04-17 18:41:43

标签: sql oracle

您好我正在尝试删除列中的所有逗号,例如第1列 包含:1,232,3,123,123,32,223。如何删除逗号,以便将行更新为1232,3123,123,32223?。我尝试了以下内容:

SELECT REPLACE(col1,',','');

但是出现以下错误:错误代码:1054。“字段列表”中的未知列'col1'

2 个答案:

答案 0 :(得分:1)

不要将数字存储在字符串中!这是一个糟糕的表现形式,Oracle提供了更好的解决方案,如嵌套表或JSON。

有时我们会遇到其他人糟糕的设计决策。我认为这个地方最简单的方法是多步替换:

select replace(replace(replace(col1, ', ', '~ '), ',', ''), '~ ', ', ')

这假设~没有出现在字符串中。

答案 1 :(得分:1)

用例:您的表中有一列具有varchar类型的列,并且您要从此列中存储的值中删除所有逗号。

最初,我不确定如何应用上述解决方案。这就是我实现自己想要的方式。

update book set title = replace(title,'.','') where bookid<>0