当前位置: 代码迷 >> Sql Server >> 字段存在相同数据,怎么从本身更新
  详细解决方案

字段存在相同数据,怎么从本身更新

热度:28   发布时间:2016-04-24 08:52:57.0
字段存在相同数据,如何从本身更新?
有表 TableA 中有列 C1、C2、C3,列 C1 中有很多相同的数据,每个相同的数据对应的 C2、C3 列只有一行记录存在非NULL值,需要将此值更新到对应的为NULL的项中。
示例如下:
C1    C2    C3
---------------
1     9     6
1     NULL  NULL
2     NULL  NULL
2     8     5
3     7     4
3     NULL  NULL

需要更新为:
C1    C2    C3
---------------
1     9     6
1     9     6
2     8     5
2     8     5
3     7     4
3     7     4

最好只使用一条Update语句,请勿使用Group,求大神。。。
------解决思路----------------------

-- 大周末的,都去玩了。
create table test(C1 int ,  C2 int,   C3 int)
insert into test values
(1,     9,     6),
(1,     NULL,  NULL),
(2,     NULL,  NULL),
(2,     8,     5),
(3,     7,     4),
(3,     NULL,  NULL)
go
select * from test 
go
update A 
set A.C2 = B.C2 , A.C3 = B.C3
from test A , test B
where A.C1 = B.C1 and A.C2 is null and B.C2 is not null 
go
select * from test 
go
drop table test 
go


(6 行受影响)
C1          C2          C3
----------- ----------- -----------
1           9           6
1           NULL        NULL
2           NULL        NULL
2           8           5
3           7           4
3           NULL        NULL

(6 行受影响)


(3 行受影响)
C1          C2          C3
----------- ----------- -----------
1           9           6
1           9           6
2           8           5
2           8           5
3           7           4
3           7           4

(6 行受影响)


  相关解决方案