我在Oracle 11g的表,我需要删除的号码下面的所有实例有一个电话号码列的表列:更新通过删除字符串中的字符
(0)
这样的例子是:+44 (0)1223 123456
- >+44 1223 123456
如何编写更新语句以在括号中查找零并将其从每个表格行中删除? 如果这有帮助,(0)
总是在所有行上处于相同位置。
我在Oracle 11g的表,我需要删除的号码下面的所有实例有一个电话号码列的表列:更新通过删除字符串中的字符
(0)
这样的例子是:+44 (0)1223 123456
- >+44 1223 123456
如何编写更新语句以在括号中查找零并将其从每个表格行中删除? 如果这有帮助,(0)
总是在所有行上处于相同位置。
尝试(对于Oracle)
REPLACE(telno,'(0)') as Telno
使用REPLACE()
功能:
update tablename
set phonecol = replace(phonecol, '(0)')
如果表是很大的,只有一些行会被更新,添加以下,以保持交易大小下来:
where phonecol like '%(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;
你并不需要使用“”,只是忽略了表达 – JohnHC
@JohnHC的一部分,谢谢你的提示。 (我不太了解Oracle。) – jarlh