tb_score表
转换成:
SQL实现代码:
create table tb_score
(
stu_id int,
stu_name varchar2(20),
stu_object varchar2(10),
stu_score number(6,2)
)
go
select * from tb_score;
go
insert into tb_score values(1,'andy','Chinese',80);
insert into tb_score values(1,'andy','Math',70.05);
insert into tb_score values(1,'andy','English',90);
insert into tb_score values(2,'DK','Chinese',80.05);
insert into tb_score values(2,'DK','Math',73.05);
insert into tb_score values(2,'DK','English',99);
go
select stu_id,stu_name,sum(decode(stu_object,'Chinese',stu_score)) 语文,
sum(decode(stu_object,'Math',stu_score)) 数学,
sum(decode(stu_object,'English',stu_score)) 英语 from tb_score
group by stu_id,stu_name;
select stu_id,stu_name,sum(case stu_object when 'Chinese' then stu_score end) 语文,
sum(case stu_object when 'Math' then stu_score end) 数学,
sum(case stu_object when 'English' then stu_score end) 英语 from tb_score
group by stu_id,stu_name;
上面两种方式都可以,
如果有什么好的方式,欢迎大家给我提意见