create table tt([t0] [varchar] (50) null, [t1] [varchar] (50) null,[t2] [varchar](50) null)
insert into tt(t0,t1,t2) values('0','1','A');
insert into tt(t0,t1,t2) values('0','1','B');
insert into tt(t0,t1,t2) values('0','1','C');
insert into tt(t0,t1,t2) values('0','1','D');
insert into tt(t0,t1,t2) values('0','2','E');
insert into tt(t0,t1,t2) values('0','2','G');
insert into tt(t0,t1,t2) values('01','2','M');
insert into tt(t0,t1,t2) values('01','2','N');
insert into tt(t0,t1,t2) values('01','2','Q');
select t0,t1,t2 into #tt from tt order by t0,t1,t2 asc
declare @t0 varchar(50), @t1 varchar(50),@t2 varchar(50)
update #tt
set @t2=case when @t0=t0 and @t1=t1 then @t2+','+t2 else t2 end ,
@t0=t0,@t1=t1,
t2=@t2
select t0,t1,max(t2) as t2 from #tt group by t0,t1
drop table #tt
drop table tt
结果如下:
0 1 A,B,C,D
0 2 E,G
01 2 M,N,Q