mysql簡單行轉列
阿新 • • 發佈:2019-02-17
DROP TABLE IF EXISTS `tb`;
CREATE TABLE `tb` (
`id` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`pro` 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
;
-- ----------------------------
-- Records of tb
-- ----------------------------
BEGIN;
INSERT INTO `tb` VALUES ('1', '張三', '語文', '74'), ('2', '張三', '數學', '83'), ('4', '張三', '物理', '93'), ('5', '李四' , '語文', '74'), ('6', '李四', '數學', '84'), ('8', '李四', '物理', '94');
COMMIT;
SELECT name ,
MAX(CASE pro WHEN '語文' THEN score ELSE 0 END ) 語文,
MAX(CASE pro WHEN '數學' THEN score ELSE 0 END ) 數學,
MAX(CASE pro WHEN '物理' THEN score ELSE 0 END ) 物理
FROM tb
GROUP BY name;