用sql語句要求行變列,列變行

2021-08-30 18:20:35 字數 618 閱讀 2217

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...