34,873
社区成员
发帖
与我相关
我的任务
分享create table A(aid int, acontent varchar(10))
create table B(bid int,aid int,btype int,bcontent varchar(10))
insert into A values(1, 'abc')
insert into A values(2, 'bcd')
insert into B values(1, 1, 1, 'ABC')
insert into B values(2, 1, 2, 'BCD')
insert into B values(3, 1, 3, 'CDE')
insert into B values(4, 2, 4, 'EFG')
go
select a.aid , a.acontent,
max(case b.btype when 1 then cast(b.btype as varchar) else '' end) bid_1,
max(case b.btype when 1 then b.bcontent else '' end) bconten_1,
max(case b.btype when 2 then cast(b.btype as varchar) else '' end) bid_2,
max(case b.btype when 2 then b.bcontent else '' end) bconten_2,
max(case b.btype when 3 then cast(b.btype as varchar) else '' end) bid_3,
max(case b.btype when 3 then b.bcontent else '' end) bconten_3,
max(case b.btype when 4 then cast(b.btype as varchar) else '' end) bid_4,
max(case b.btype when 4 then b.bcontent else '' end) bconten_4
from a ,b
where a.aid = b.aid
group by a.aid , a.acontent
drop table a , b
/*
aid acontent bid_1 bconten_1 bid_2 bconten_2 bid_3 bconten_3 bid_4 bconten_4
----------- ---------- ------------------------------ ---------- ------------------------------ ---------- ------------------------------ ---------- ------------------------------ ----------
1 abc 1 ABC 2 BCD 3 CDE
2 bcd 4 EFG
(所影响的行数为 2 行)
*/select a.aid , a.acontent,
max(case b.btype when 1 then btype else '空' end) bid_1,
max(case b.btype when 1 then b.bcontent else '空' end) bconten_1,
max(case b.btype when 2 then btype else '空' end) bid_2,
max(case b.btype when 2 then b.bcontent else '空' end) bconten_2,
max(case b.btype when 3 then btype else '空' end) bid_3,
max(case b.btype when 3 then b.bcontent else '空' end) bconten_3,
max(case b.btype when 4 then btype else '空' end) bid_4,
max(case b.btype when 4 then b.bcontent else '空' end) bconten_4
from a ,b
where a.aid = b.aid
group by a.aid , a.acontent