一道关于数据库的面试题,看着很简单,但我就是不会写。求指导

如果在oracle中如何写这SQL语句?

oracle的http://www.cnblogs.com/luluping/archive/2012/07/26/2610705.html

这就是竖表变横表,用case语法汇总,或者用PIVOT(sqlserver方法)

SQL行转列汇总

本人菜鸟一枚。以下是我想到的一种方法:

---行转列
create table tb(
name varchar(10),
subject varchar(10),
result int);

insert into tb values ('张三','语文',74);
insert into tb values ('张三','数学',83);
insert into tb values ('李四','语文',80);
insert into tb values ('李四','数学',86);

select * from tb;

-----输出格式如下----
姓名 语文 数学
张三 74 83
李四 80 86

select name,
sum(case when subject='语文' then result end )as 语文,
sum(case when subject='数学' then result end) as 数学
from tb
group by name
;