哪位兄弟有空,帮我处理个SQL问题
如:
表A:
ID      Name     CodeName 
12      张三     广东
13      李四     湖南
.
.
.
.
19      小明     北京  
123     张三     
124     李四         
.
.
.
.
.
129    小明         
现在想通过SQL语句 
把ID长度等于2的CodeName值 赋给ID长度等3 的CodeName,且是当Name相同的时候进行赋值
最后结果如下:表A:
ID      Name     CodeName 
12      张三     广东
13      李四     湖南

解决方案 »

  1.   

    update a
    set codename = (select codename from table where name = a.name and len(id) =3)
    from table a
    where Len(a.id) = 2
      

  2.   

    不好意思,没有贴完
    最后结果如下: 表A: 
    ID             Name    CodeName   
    12             张三        广东 
    13             李四        湖南
    .
    .
    .

    19            小明          北京  
    123           张三          广东 
    124           李四          湖南
    .
    .
    .
    .
    .
    129           小明          北京  请大家帮忙,谢谢
      

  3.   

    update a
    set codename = (select top 1 codename from table where name = a.name and len(id) =3)
    from table a
    where Len(a.id) = 2
      

  4.   

    搞定,结贴!
    太强悍了,happyflystone太感谢了........
      

  5.   

    declare @t table(ID varchar(4),[Name] varchar(6),CodeName varchar(6))
    insert @t select '12','张三','广东' 
    insert @t select '13','李四','湖南'  
    insert @t select '19','小明','北京'     
    insert @t select '123','张三',null         
    insert @t select '124','李四',null                
    insert @t select '129','小明',null
    update a
    set codename = (select top 1 codename from @t where name = a.name and len(id) =2)
    from @t a
    where  codename is nullselect * from @t/*ID   Name   CodeName 
    ---- ------ -------- 
    12   张三     广东
    13   李四     湖南
    19   小明     北京
    123  张三     广东
    124  李四     湖南
    129  小明     北京
    */
      

  6.   

    update a
    set codename = (select top 1 codename from table where name = a.name and len(id) =2)
    from table a
    where Len(a.id) = 3
    嘻嘻,条件搞返了,不过,结果出来了,再次感谢!~~~~~~```
      

  7.   

    update   a 
    set   codename   =   (select   top   1   codename   from   table   where   name   =   a.name   and   len(id)   =2) 
    from   table   a 
    where   Len(a.id)   =   3 
    嘻嘻,条件搞返了,不过,结果出来了,再次感谢!~~~~~~```----
    5楼已经更正,呵呵,不好意思