create table tb(姓名 varchar(10) , 課程 varchar(10) , 分數 int)
insert into tb values('張三' , '語文' , 74);
insert into tb values('張三' , '數學' , 83);
insert into tb values('張三' , '物理' , 93);
insert into tb values('李四' , '語文' , 74);
insert into tb values('李四' , '數學' , 84);
insert into tb values('李四' , '物理' , 94);
select * from tb;
delete from tb;
select 姓名 as 姓名 ,
max(case 課程 when '語文' then 分數 else 0 end) 語文,
max(case 課程 when '數學' then 分數 else 0 end) 數學,
max(case 課程 when '物理' then 分數 else 0 end) 物理
from tb
group by 姓名
Oracle行轉列 行變列
在寫一些複雜的sql的時候,經常需要使用到行變列的技巧,一些帳務系統的統計也經常會寫到這樣的sql。主要用到了max decode或nvl這些函式來達到目的。寫下來讓大家互相學習學習!下面是乙個行變列的例子。如表row2column2有以下資料 名字 課程 分數 1 張三 語文 80 2 張三 數學...
MySQL 行變列 查詢
sql語言的case語句備忘 概述 sql語句中的case語句與高階語言中的switch語句,是標準sql的語法,適用與乙個條件判斷有多種值的情況下分別執行不同的操作。靈活應用case語句可以使sql語句變得簡潔易讀,下面在db2環境下通過乙個簡單的查詢來展示sql case語句的強大功能。表 t ...
GROOVY資料列變行
在開發中遇到了列變行的問題,簡單記錄如下 tb case 記錄了 用例id 用例名稱。tb ret 記錄了執行結果,執行時間結果狀態。要求查詢一段時間內的記錄獲取如下資料包表 1點 2點 3點 4點 5點 24點 用例1 1 2 1 4 3 4 用例5 1 3 1 4 3 4 用例4 1 2 1 4...