------------------------------------
原始这样
--------------------------------------
1001 AAA BBB
1001 CCC DDD
1001 EEE FFF
1023 DDD DDD
1023 DDD SWW
1023 III III
1929 SSS SSS
1929 DDD WWW
-------------------------------------
转成这样
-------------------------------------
1001 AAA BBB
CCC DDD
EEE FFF
1023 DDD DDD
DDD SWW
III III
1929 SSS SSS
DDD WWW
--------------------------------------------------------
set nocount on
if object_id('tb')is not null drop table tb
go
create table tb(a varchar(10), b varchar(5), c varchar(5))
insert tb select 1001 , 'AAA', 'BBB'
insert tb select 1001 , 'CCC' , 'DDD'
insert tb select 1001 , 'EEE' , 'FFF'
insert tb select 1023 , 'DDD', 'DDD'
insert tb select 1023 , 'DDD', 'SWW'
insert tb select 1023 , 'III' ,'III'
insert tb select 1929 , 'SSS' , 'SSS'
insert tb select 1929 , 'DDD' , 'WWW'
alter table tb
add id int identity
go
select a=case when exists(select 1 from tb where a=t.a and id<t.id) then '' else a end ,b,c from tb t
alter table tb
drop column id
/*a b c
---------- ----- -----
1001 AAA BBB
CCC DDD
EEE FFF
1023 DDD DDD
DDD SWW
III III
1929 SSS SSS
DDD WWW
*/