1. 程式人生 > >mysql簡單行轉列

mysql簡單行轉列

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;

簡單行轉列