一个非常简单的UDATE问题!!!!
小弟出学SQL server 需要对SQL server中的一个表的字段进行模糊处理,字段名为C_phone,类型是varchar,大约有20W行数据。这个字段存储的是手机号码,没有重复项。现在需要对这些号码进行模糊处理具体值 举例 8613012345678。变为 A12345678. 我的思路是将所有的号码的前5位进行字母编码,全国一共只有22个号段,例如 : 130 对应 A 131 对应 B ....
这个需要写一个选择判断语句 ,但不知道怎么写。
我写了一个只能将一条数据模糊化的SQL语言,一旦数据变为2条或以上就会说IF语句有问题!!!
use GOC_01
if (LEFT((select c_phone from ceshi_3 ),5)='86130')
update ceshi_3 set c_phone=(char(65)+right(c_phone,8));
其效果是 将 8613012345678 变为A12345678,但多行如何处理????
------解决方案-------------------- 引用: 自己顶一顶!!!
呵呵,可以这样,就是的写很多代码:
update ceshi_3
set c_phone=case when left(c_phone,5)='86130' then char(65)+right(c_phone,8)
when left(c_phone,5)='86131' then char(66)+right(c_phone,8)
...
end