oracle行转列实现
Posted 魔力的猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle行转列实现相关的知识,希望对你有一定的参考价值。
1.新建测试表
create table TEST_TABLE( T1 VARCHAR2(10),--姓名 T2 VARCHAR2(10),--科目 T3 VARCHAR2(10)--成绩 )
2.插入测试数据
insert into test_table (T1, T2, T3) values (\'张三\', \'语文\', \'88\'); insert into test_table (T1, T2, T3) values (\'张三\', \'数学\', \'99\'); insert into test_table (T1, T2, T3) values (\'张三\', \'英语\', \'100\'); insert into test_table (T1, T2, T3) values (\'李四\', \'语文\', \'79\'); insert into test_table (T1, T2, T3) values (\'李四\', \'数学\', \'100\'); insert into test_table (T1, T2, T3) values (\'李四\', \'英语\', \'99\'); insert into test_table (T1, T2, T3) values (\'王五\', \'语文\', \'99\'); insert into test_table (T1, T2, T3) values (\'王五\', \'数学\', \'100\'); insert into test_table (T1, T2, T3) values (\'王五\', \'英语\', \'98\'); insert into test_table (T1, T2, T3) values (\'李六\', \'语文\', \'88\'); insert into test_table (T1, T2, T3) values (\'李六\', \'英语\', \'99\'); insert into test_table (T1, T2, T3) values (\'李六\', \'数学\', \'100\');
3.行转列之前效果
我们先查询一下现在的效果
4.下面是行转列写法
select * from test_table pivot (max(T3) for T2 in( \'语文\' as 语文, \'数学\' as 数学, \'英语\' as 英语 ))
效果如下:
这样就非常简单的实现了。
以上是关于oracle行转列实现的主要内容,如果未能解决你的问题,请参考以下文章