批量更新数据表~~在线等~~急!!

hly0024 2010-10-01 05:14:23
现有表如下:
tel1 tel2
02488217288 13504005762
02488217288 13504005762
02488217288 13504005762
02488217288 13504005762
02488217288 13504005762
02425373991 02425373931
02462629838 02462629839

想把所有tel1和tel2两列的 前三位为024的区号去掉 ,这个批量语句怎么写?
谢谢喽~

没分了,不好意思~~
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-10-01
  • 打赏
  • 举报
回复
create table tb(tel1 varchar(20), tel2 varchar(20))
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02425373991', '02425373931')
insert into tb values('02462629838', '02462629839')
go

update tb
set tel1 = (case when left(tel1,3) = '024' and len(tel1) >= 4 then substring(tel1,4,len(tel1))
when left(tel1,3) = '024' and len(tel1) = 3 then '' else tel1 end),
tel2 = (case when left(tel2,3) = '024' and len(tel2) >= 4 then substring(tel2,4,len(tel2))
when left(tel2,3) = '024' and len(tel2) = 3 then '' else tel2 end)

select * from tb
/*
tel1 tel2
-------------------- --------------------
88217288 13504005762
88217288 13504005762
88217288 13504005762
88217288 13504005762
88217288 13504005762
25373991 25373931
62629838 62629839

(所影响的行数为 7 行)

*/

drop table tb
hly0024 2010-10-01
  • 打赏
  • 举报
回复
谢谢啦~~~去试下先.
分数不多,刚使用没几天,呵呵。日后加倍~~
dawugui 2010-10-01
  • 打赏
  • 举报
回复
create table tb(tel1 varchar(20), tel2 varchar(20))
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02488217288', '13504005762')
insert into tb values('02425373991', '02425373931')
insert into tb values('02462629838', '02462629839')
go

update tb
set tel1 = (case when left(tel1,3) = '024' and len(tel1) >= 3 then substring(tel1,4,len(tel1)) else tel1 end),
tel2 = (case when left(tel2,3) = '024' and len(tel2) >= 3 then substring(tel2,4,len(tel2)) else tel2 end)

select * from tb
/*
tel1 tel2
-------------------- --------------------
88217288 13504005762
88217288 13504005762
88217288 13504005762
88217288 13504005762
88217288 13504005762
25373991 25373931
62629838 62629839

(所影响的行数为 7 行)

*/

drop table tb
dawugui 2010-10-01
  • 打赏
  • 举报
回复
update tb
set tel1 = (case when left(tel1,3) = '024' and len(tel1) >= 3 then substring(tel1,4,len(tel1)) then tel1 end),
tel2 = (case when left(tel2,3) = '024' and len(tel2) >= 3 then substring(tel2,4,len(tel2)) then tel2 end)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧