如下表:T1
F1 F2 F3
1 A 10
1 B 5
2 B 20
3 C 5
3 D 10
4 C 5
希望能得到如下表:T2
F1 A B C D
1 10 5 0 0
2 0 20 0 0
3 0 0 5 10
4 0 0 5 0
create table T1
(
F1 int,
F2 varchar(10),
F3 int
)
insert T1 select 1,'A',10
insert T1 select 1,'B',5
insert T1 select 2,'B',20
insert T1 select 3,'C',5
insert T1 select 3,'D',10
insert T1 select 4,'C',5
select * from T1
select F1,
max(case when F2='A' then F3 else 0 end) as A,
max(case when F2='B' then F3 else 0 end) as B,
max(case when F2='C' then F3 else 0 end) as C,
max(case when F2='D' then F3 else 0 end) as D
from T1
group by F1
转载于:https://www.cnblogs.com/tries/archive/2008/04/09/1145754.html