首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

急求,SQL修改语句有关问题

2012-12-14 
急求,SQL修改语句问题有个表A(BH,MC)05A0501A10502A20503A3050301A31050302A32…… …… …… 想请教,现在想用SQ

急求,SQL修改语句问题
有个表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
…… …… ……
[最优解释]
update a set bh='06'+SUBSTRING(bh,3,len(bh)-2) where bh like '05%'
[其他解释]


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

[其他解释]
引用:
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' 中插入重复键的行。
[其他解释]
引用:
update a set bh='06'+SUBSTRING(bh,3,len(bh)-2) where bh like '05%'

谢谢,好了
[其他解释]
UPDATE  a
 SET     a.bh = REPLACE (SUBSTRING (bh,1,2),'05','06')+SUBSTRING (bh,3,LEN(bh))
 WHERE   SUBSTRING(bh, 1, 2) = '05'

热点排行