Oracle 行轉列的sql語句

悠悠隱於市發表於2011-03-29
drop table ABC;       
create table ABC(id number,name varchar2(50),kcName varchar2(50),score number);
insert into ABC values(1,'張三','語文',88);
insert into ABC values(2,'張三','數學',68);
insert into ABC values(3,'張三','英語',78);

insert into ABC values(4,'李四','英語',78);
insert into ABC values(5,'李四','語文',88);
insert into ABC values(6,'李四','數學',79);

insert into ABC values(7,'王五','英語',74);
insert into ABC values(8,'王五','語文',58);
insert into ABC values(9,'王五','數學',98);

select * from abc;
select abc.Name,sum(decode(kcName,'語文',SCORE,null)) 語文,
                sum(decode(kcName,'數學',SCORE,null)) 數學,
                sum(decode(kcName,'英語',SCORE,null)) 英語
                from abc group by abc.name;

結果:                
NAME	語文	數學	英語
1	王五	158	198	174
2	李四	188	179	178
3	張三	188	168	178

 

相關文章