--创建并插入初始化数据
drop table test;
create table test(
id number,
name varchar2(50), --姓名
subject varchar2(50), --科目
score number --成绩
);
insert into test values(1,'Amy','语文',99);
insert into test values(2,'Amy','数学',90);
insert into test values(3,'Brown','语文',80);
insert into test values(4,'Brown','数学',88);
--查看表中数据
select * from test;
结果:
ID NAME SUBJECT SCORE
--- --------- --------------- -------
1 Amy 语文 99
2 Amy 数学 90
3 Brown 语文 80
4 Brown 数学 88
--显示每位考生的语文和数学成绩
select name 姓名,
max(decode(subject, '语文', score, 0)) 语文,
max(decode(subject, '数学', score, 0)) 数学
from test
group by name;
结果:
姓名 语文 数学
---------- -------- ----------
Amy 99 90
Brown 80 88
之前写列变行一直写不好,应该是函数和group by子句使用不够娴熟。先写个简单的例子总结一下。