在更新命令DB2中使用Replace

时间:2014-02-21 10:42:45

标签: sql replace db2

我有一个快速的要求,我需要更新我的数据库中已损坏的数据。 我有几个文本列,文本中包含& nbsp,尽管我们已经修复了代码中的问题,但仍需要更正db中的损坏数据。

我想我能做到

UPDATE table_name 
   SET column_name=(
        SELECT REPLACE(colum_name, ' ', '') 
        FROM table_name 
        WHERE id=1234) 
 WHERE id=1234

但我必须为每一行单独进行。是否有更简单的查询,它会检查特定列中的所有行并删除& nbsp标记?

感谢您的帮助。

2 个答案:

答案 0 :(得分:9)

我认为其他专家过于复杂的解决方案实际上只需要一个简单的UPDATE

UPDATE table_name SET column_name = REPLACE(column_name, ' ', '') 
  WHERE column_name LIKE '% %'

答案 1 :(得分:1)

您可以使用存储过程或匿名块

来完成此操作

它应该是这样的。

begin
 declare atend boolean default false;
 declare val char(32);
 declare newstring char(32);
 declare c cursor for
  select col from table;

 open c;
 fetch c into val;
 while (atend = false) do
  set newstring = replace(val, ' ', '');
  update table set col = newstring where current of c;
  fetch c into val;
 end while;
end@