0

我有一张电话号码不正确的表格。
有些数字像:06xxxxxxxx
其他数字像:06-xxxxxxxx
我想要这样的数字:+316xxxxxxxx

我的表:
用户 ID、电话号码、国家

我当前的(非工作查询)查询:
UPDATE account_number am
SET am.phonenumber = REPLACE(am.phonenumber,'06','+316');

以上将不起作用,因为如果有人有像 +31611061111 这样的号码,它也会被替换为 +31611+3161111

我希望我的问题不要太复杂。
提前致谢...

4

3 回答 3

2

试试这个

首先,更新以06-开头的数字。

UPDATE account_number am 
SET am.phonenumber = CONCAT('+316', SUBSTRING(am.phonenumber, 4)) 
WHERE am.phonenumber LIKE '06-%';

然后更新从06开始的那些。执行顺序在这里至关重要。

UPDATE account_number am 
SET am.phonenumber = CONCAT('+316', SUBSTRING(am.phonenumber, 3)) 
WHERE am.phonenumber LIKE '06%';
于 2012-12-24T14:00:03.473 回答
1

尝试类似的东西

UPDATE account_number am
SET am.phonenumber = '+316' + Substring(am.phonenumber,3,Length(am.phonenumber) - 2)
where am.phonnumber like '06%'
于 2012-12-24T13:57:59.590 回答
0

您可以使用WHERE子句匹配仅以 06 开头的数字,如果这是您所追求的。要实现这一点,请使用LIKE

于 2012-12-24T13:56:52.353 回答