mysql行列轉換例子 mysql行列轉換示例

2021-10-18 03:18:41 字數 1309 閱讀 2082

現把轉換方法列舉如下:

1、縱表轉橫表:

縱表結構 tablea

name

course

grade

張三語文

張三數學

張三英語

李四語文

李四數學

橫表結構 tableb

name

語文數學

英語張三

李四方法一:

select name,

sum(case course when 『語文『 then grade else 0 end) as 語文,

sum(case course when 『數學『 then grade else 0 end) as 數學,

sum(case course when 『英語『 then grade else 0 end) as 英語

from tablea

group by name

2、橫表轉縱表的"sql"示例

橫表結構: test_h2z

id      姓名    語文        數學       英語

1       張三     80         90         70

2       李四     90         85         95

3       王五     88         75         90

轉換後的表結構:

id     姓名     科目     成績

1       張三     語文     80

2       張三     數學     90

3       張三     英語     70

4       李四     語文     90

5       李四     數學     80

6       李四     英語     99

7       王五     語文     85

8       王五     數學     96

9       王五     英語     88

橫表轉縱表sql示例:

select   姓名,'語文'   as     科目,語文   as   成績   from   test_h2z   union   all

select   姓名,'數學'   as     科目,數學   as   成績   from   test_h2z   union   all

select   姓名,'英語'   as     科目,英語   as   成績   from   test_h2z

order by 姓名,科目 desc;

mysql行列轉換 mysql行列轉換

1.一維轉二維 上圖為成績表中資料,現希望將資料轉換為下圖。靜態 轉化為二維表後的列名及列數是確定不變的,本例中即course只有數學 語文 英語這三門課。select s name,max if course 數學 score,0 as 數學,max if course 語文 score,0 as...

MySQL 行列轉換

最近在慕課上 看mysql教程 裡面關於行轉列的教程不錯 貼上練習sql 做個記錄 簡單行轉列 select a.user name,sum b.kills from user1 a join user kills b on a.id b.user id group by user name cro...

mysql行列轉換

列轉行 利用max case when then max 聚合函式 取最大值 casecoursewhen 語文 thenscoreelse0end 判斷 as 語文 別名作為列名 select name max case when course 語文 then score end as語文,max...