急求,SQL修改语句问题

zhanglimin666 2012-11-28 10:28:45
有个表A(BH,MC)
05 A
0501 A1
0502 A2
0503 A3
050301 A31
050302 A32
…… …… ……
想请教,现在想用SQL语句把表中的左面开始两个字符为05的,全部修改为06
修改后数据变成如下:
06 A
0601 A1
0602 A2
0603 A3
060301 A31
060302 A32
…… …… ……
...全文
84 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2012-11-28
  • 打赏
  • 举报
回复
UPDATE  a
 SET     a.bh = REPLACE (SUBSTRING (bh,1,2),'05','06')+SUBSTRING (bh,3,LEN(bh))
 WHERE   SUBSTRING(bh, 1, 2) = '05'
zhanglimin666 2012-11-28
  • 打赏
  • 举报
回复
引用 2 楼 lixzhong 的回复:
update a set bh='06'+SUBSTRING(bh,3,len(bh)-2) where bh like '05%'
谢谢,好了
zhanglimin666 2012-11-28
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
SQL code?123456 UPDATE a SET a.bh = '06' + CASE WHEN LEN(bh) = 2 THEN '' ELSE LEN(bh) - 2 END WHERE SUBSTRING(bh, 1, 2) = '05' ……
消息 2601,级别 14,状态 1,第 1 行 不能在具有唯一索引 'BH' 的对象 'dbo.A' 中插入重复键的行。
开启时代 2012-11-28
  • 打赏
  • 举报
回复
update a set bh='06'+SUBSTRING(bh,3,len(bh)-2) where bh like '05%'
發糞塗牆 2012-11-28
  • 打赏
  • 举报
回复

 UPDATE  a
 SET     a.bh = '06' + CASE WHEN LEN(bh) = 2 THEN ''
                            ELSE LEN(bh) - 2
                       END
 WHERE   SUBSTRING(bh, 1, 2) = '05'

22,300

社区成员

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

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