Mysql實現行列轉換
前言:
最近又玩起了sql 語句,想著想著便給自己出了一道題目:“行列轉換”。起初瞎折騰了不少時間也上網參考了一些博文,不過大多數是采用 oracle 數據庫當中的一些便捷函數進行處理,比如 ”pivot”。那么,在 Mysql 環境下如何處理?
自己舉了個小例子:
sql 代碼實現:
-- Step1:建表并插入數據 -- Step2:中間轉換,即“二維轉一維”得到一維表。 -- Step3:利用IF判斷并“group by”即可得到目標結果表。 -- 加載 use test; create table score ( name varchar(11), Math int, English int ); insert into score values('甲',89,78); insert into score values('乙',77,81); insert into score values('丙',87,98); -- 查詢生成目標表 SELECT c2 AS '課程', SUM(IF(c1='甲',c3,0)) AS '甲', SUM(IF(c1='乙',c3,0)) AS '乙', SUM(IF(c1='丙',c3,0)) AS '丙' from( select name as c1,'Math' as c2,Math as c3 from score group by name Union select name,'English' as c2,English from score group by name ) AS tx group by c2;
結語:
目前為止,個人尚未發現Mysql當中存在可以便捷將表格行列快速轉換的函數。以上只是個人的一點小嘗試,歡迎有更好解法的朋友批評指正!
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!