什么是MySQL列轉(zhuǎn)行
MySQL列轉(zhuǎn)行是指將一張表中的列值轉(zhuǎn)換為行值,通常用于數(shù)據(jù)查詢和分析。舉個例子,假設(shè)我們有一個表格,表示某學(xué)校每個班級每門課的成績:
Class | Subject1 | Subject2 | Subject3 |
---|---|---|---|
1A | 87 | 95 | 92 |
1B | 78 | 85 | 90 |
1C | 92 | 88 | 89 |
如果我們想要將成績按照科目進行匯總,那么就需要將列轉(zhuǎn)行,得到如下結(jié)果:
Class | Subject | Score |
---|---|---|
1A | Subject1 | 87 |
1A | Subject2 | 95 |
1A | Subject3 | 92 |
1B | Subject1 | 78 |
1B | Subject2 | 85 |
1B | Subject3 | 90 |
1C | Subject1 | 92 |
1C | Subject2 | 88 |
1C | Subject3 | 89 |
如何快速實現(xiàn)MySQL列轉(zhuǎn)行
MySQL列轉(zhuǎn)行可以使用UNION ALL語句來實現(xiàn)。具體操作如下:
- 首先將列名轉(zhuǎn)換成值,即SELECT 'Subject1' AS subject, Subject1 AS score FROM table_name。
- 然后再用UNION ALL連接所有科目。
- 最后按照班級進行排序,即SELECT * FROM above_query ORDER BY Class, Subject。
完整的SQL語句如下:
SELECT Class, 'Subject1' AS Subject, Subject1 AS Score FROM table_name
UNION ALL
SELECT Class, 'Subject2' AS Subject, Subject2 AS Score FROM table_name
UNION ALL
SELECT Class, 'Subject3' AS Subject, Subject3 AS Score FROM table_name
ORDER BY Class, Subject
以上就是MySQL列轉(zhuǎn)行的快速實現(xiàn)方法,可以根據(jù)實際需求進行調(diào)整。