通过删除字符串字符更新表列

时间:2016-09-06 09:27:45

标签: sql oracle

我在Oracle 11g表中有一个电话号码列,我需要从数字中删除以下所有实例:

(0)

示例如下:+44 (0)1223 123456 - > +44 1223 123456

如何编写更新语句以在括号中找到零并从每个表行中删除它? 如果这有帮助,(0)总是在所有行上处于相同的位置。

3 个答案:

答案 0 :(得分:1)

使用REPLACE()功能:

update tablename
set phonecol = replace(phonecol, '(0)')

如果表格很大,并且只会更新部分行,请添加以下内容以保持交易规模下降:

where phonecol like '%(0)%'

答案 1 :(得分:0)

尝试(针对Oracle)

REPLACE(telno,'(0)') as Telno

答案 2 :(得分:0)

update tablename
  set phonecol = regexp_replace( phonecol ,'[(0)]') 
where phonecol like '%(0)%' ;

例如,您可以尝试使用以下选项:

select '+44 (0)1223 123456',regexp_replace( '+44 (0)1223 123456','[(0)]') 
from dual;