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 英語
 ))

效果如下:

 

 

 這樣就非常簡單的實現了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM