實現從圖一轉行成圖二的功能:sql
圖一:測試
圖二:spa
建表語句:code
CREATE TABLE `t_user_score` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵' , `cname` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `cource` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `score` int(11) NULL DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci ;
插入測試數據:blog
INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小許', '語文', '90'); INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小許', '數學', '99'); INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小許', '英語', '88'); INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小張', '語文', '87'); INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小張', '數學', '93'); INSERT INTO `coco_test`.`t_user_score` ( `cname`, `cource`, `score`) VALUES ( '小張', '英語', '78');
實現sql:ci
-- 行轉列 SELECT cname , MAX(CASE cource WHEN '數學' THEN score ELSE 0 END ) 數學, MAX(CASE cource WHEN '語文' THEN score ELSE 0 END ) 語文, MAX(CASE cource WHEN '英語' THEN score ELSE 0 END ) 英語 FROM t_user_score GROUP BY cname;