2012-10-31 66 views
0

我在这里遇到问题。 在我的数据库,我值在像628932323mobile_phone列,但我想改变每其中使用62 to 0使用SQL脚本在varchar2数据类型中更改SQL值

old value : 628932323 
new value : 08932323 

有人可以帮我解决我的问题行。感谢

+0

您是否需要在每个数字中替换*起始* 62s,或者您是否需要在每个数字中替换*每个* 62s? –

+0

是的。哟是对的 –

+1

所以,第一次出现或每次出现? ) –

回答

1

如果您使用的是Oracle 10g或更高版本,可以使用REGEXP_REPLACE功能http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm

select regexp_replace(your_column, '62([:digit:]*)', '0\2') 
from your_table; 

还是比较传统的方式,而不:

select case 
     when your_column like '62%' then '0' || substr(your_column, 3) 
     else 
     your_column 
     end 
from your_table; 

只是要小心前导空格或您的电话号码字符串中的其他字符。