Oracle行转列

来源:互联网 发布:淘宝怎样退货流程 编辑:程序博客网 时间:2024/06/03 09:18

oracle行转列

1、创建一个test表

2、向表中插入数据

insert into test(student,course,score)
select '张三','语文',78 from dual union
select '张三','数学',87 from dual union 
select '张三','英语',82 from dual union
select '张三','物理',90 from dual union
select '李四','语文',65 from dual union
select '李四','数学',77 from dual union
select '李四','英语',65 from dual union
select '李四','物理',85 from dual

3、查询

select student,

       sum(decode(course,'数学',score)) 数学,
       sum(decode(course,'物理',score)) 物理, 
       sum(decode(course,'英语',score)) 英语,
       sum(decode(course,'语文',score)) 语文 from test group by student;
0 0