mysql 行轉(zhuǎn)列和列轉(zhuǎn)行實(shí)例詳解
mysql行轉(zhuǎn)列、列轉(zhuǎn)行
語句不難,不做多余解釋了,看語句時,從內(nèi)往外一句一句剖析
行轉(zhuǎn)列
有如圖所示的表,現(xiàn)在希望查詢的結(jié)果將行轉(zhuǎn)成列

建表語句如下:
CREATE TABLE `TEST_TB_GRADE` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `COURSE` varchar(20) DEFAULT NULL, `SCORE` float DEFAULT '0', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
insert into TEST_TB_GRADE(USER_NAME, COURSE, SCORE) values
("張三", "數(shù)學(xué)", 34),
("張三", "語文", 58),
("張三", "英語", 58),
("李四", "數(shù)學(xué)", 45),
("李四", "語文", 87),
("李四", "英語", 45),
("王五", "數(shù)學(xué)", 76),
("王五", "語文", 34),
("王五", "英語", 89);
查詢語句:
此處用之所以用MAX是為了將無數(shù)據(jù)的點(diǎn)設(shè)為0,防止出現(xiàn)NULL
SELECT user_name , MAX(CASE course WHEN '數(shù)學(xué)' THEN score ELSE 0 END ) 數(shù)學(xué), MAX(CASE course WHEN '語文' THEN score ELSE 0 END ) 語文, MAX(CASE course WHEN '英語' THEN score ELSE 0 END ) 英語 FROM test_tb_grade GROUP BY USER_NAME;
結(jié)果展示:

列轉(zhuǎn)行
有如圖所示的表,現(xiàn)在希望查詢的結(jié)果將列成行

建表語句如下:
CREATE TABLE `TEST_TB_GRADE2` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `CN_SCORE` float DEFAULT NULL, `MATH_SCORE` float DEFAULT NULL, `EN_SCORE` float DEFAULT '0', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
insert into TEST_TB_GRADE2(USER_NAME, CN_SCORE, MATH_SCORE, EN_SCORE) values
("張三", 34, 58, 58),
("李四", 45, 87, 45),
("王五", 76, 34, 89);
查詢語句:
select user_name, '語文' COURSE , CN_SCORE as SCORE from test_tb_grade2 union select user_name, '數(shù)學(xué)' COURSE, MATH_SCORE as SCORE from test_tb_grade2 union select user_name, '英語' COURSE, EN_SCORE as SCORE from test_tb_grade2 order by user_name,COURSE;
結(jié)果展示:

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- mysql 行列動態(tài)轉(zhuǎn)換的實(shí)現(xiàn)(列聯(lián)表,交叉表)
- mysql 列轉(zhuǎn)行的技巧(分享)
- mysql 列轉(zhuǎn)行,合并字段的方法(必看)
- MySQL 中行轉(zhuǎn)列的方法
- 一文弄懂MYSQL如何列轉(zhuǎn)行
- MySQL實(shí)現(xiàn)行列轉(zhuǎn)換
- mysql列轉(zhuǎn)行方法超詳細(xì)講解
- 搞定mysql行轉(zhuǎn)列的7種方法以及列轉(zhuǎn)行
- MySQL中實(shí)現(xiàn)行列轉(zhuǎn)換的操作示例
- MySQL動態(tài)列轉(zhuǎn)行的實(shí)現(xiàn)示例
相關(guān)文章
MySQL存儲過程中實(shí)現(xiàn)執(zhí)行動態(tài)SQL語句的方法
這篇文章主要介紹了MySQL存儲過程中實(shí)現(xiàn)執(zhí)行動態(tài)SQL語句的方法,實(shí)例分析了MySQL中構(gòu)造及執(zhí)行動態(tài)SQL語句的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
MySQL 重裝MySQL后, mysql服務(wù)無法啟動
把mysql程序卸載后, 重裝, 結(jié)果mysql服務(wù)啟動不了,碰到這個問題的朋友可以參考下。2011-08-08
mysql解析json數(shù)據(jù)組獲取數(shù)據(jù)組所有字段的方法實(shí)例
mysql在5.7開始支持json解析了,也可以解析數(shù)組,下面這篇文章主要給大家介紹了關(guān)于mysql解析json數(shù)據(jù)組獲取數(shù)據(jù)組所有字段的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Windows系統(tǒng)下MySQL8.0.21安裝教程(圖文詳解)
這篇文章主要介紹了Windows系統(tǒng)下MySQL8.0.21安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決
這篇文章主要介紹了MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

