sql 語句寫的行列轉換

2022-08-28 20:33:10 字數 912 閱讀 4686

以前面試老遇到乙個行列轉換的問題,今天沒事,順便記錄一下

假設有這樣一張表,如下圖,建立表就不說了,直接建或者sql語句都行 

sql語句如下

--第一種

select name as 姓名,

max(case subject when '語文' then result else 0 end) as 語文,

max(case subject when '數學' then result else 0 end) as 數學,

max(case subject when '英語' then result else 0 end) as 英語,

max(case subject when '政治' then result else 0 end) as 政治,

max(case subject when '物理' then result else 0 end) as 物理

from cj group by name

--第二種

select subject as 科目,

max(case name when '張三' then result else 0 end) as 張三,

max(case name when '李四' then result else 0 end) as 李四,

max(case name when '王五' then result else 0 end) as 王五

from cj group by subject

執行結果如下

行列轉換等經典SQL語句

在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...

行列轉換等經典SQL語句

在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...

行列轉換等經典SQL語句

在企業應用中,經常會開發報表系統,而在報表中又經常用到行列轉換,這裡有乙個經典的應用例項 原表 姓名 科目 成績 張三 語文 80 張三 數學 90 張三 物理 85 李四 語文 85 李四 物理 82 李四 英語 90 李四 政治 70 王五 英語 90 轉換後的表 姓名 數學 物理 英語 語文 ...