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 英語 ))
效果如下:
這樣就非常簡單的實現了。