哪位兄弟有空,帮我处理个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 李四 湖南
如:
表A:
ID Name CodeName
12 张三 广东
13 李四 湖南
.
.
.
.
19 小明 北京
123 张三
124 李四
.
.
.
.
.
129 小明
现在想通过SQL语句
把ID长度等于2的CodeName值 赋给ID长度等3 的CodeName,且是当Name相同的时候进行赋值
最后结果如下:表A:
ID Name CodeName
12 张三 广东
13 李四 湖南
set codename = (select codename from table where name = a.name and len(id) =3)
from table a
where Len(a.id) = 2
最后结果如下: 表A:
ID Name CodeName
12 张三 广东
13 李四 湖南
.
.
.
.
19 小明 北京
123 张三 广东
124 李四 湖南
.
.
.
.
.
129 小明 北京 请大家帮忙,谢谢
set codename = (select top 1 codename from table where name = a.name and len(id) =3)
from table a
where Len(a.id) = 2
太强悍了,happyflystone太感谢了........
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 小明 北京
*/
set codename = (select top 1 codename from table where name = a.name and len(id) =2)
from table a
where Len(a.id) = 3
嘻嘻,条件搞返了,不过,结果出来了,再次感谢!~~~~~~```
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楼已经更正,呵呵,不好意思