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行转列实现的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中"行转列"的实现方式

SQL语句实现行转列

oracle行转列sql怎么写?

Hive 行转列 & 列转行

【求助】有关oracle 动态行转列

oracle行转列sql怎么写?