(1) 建表:
CREATE TABLE `student` (
`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=10 DEFAULT CHARSET=utf8;
(2) 新增数据:
insert into student(`user_name`,`course`,`score`) values
("张三", "数学", 34),
("张三", "语文", 58),
("张三", "英语", 61),
("李四", "数学", 45),
("李四", "语文", 87),
("李四", "英语", 64),
("王五", "数学", 76),
("王五", "语文", 51),
("王五", "英语", 89);
(3) 行转列 :
SELECT user_name ,
MAX(CASE course WHEN '数学' THEN score ELSE 0 END ) 数学,
MAX(CASE course WHEN '语文' THEN score ELSE 0 END ) 语文,
MAX(CASE course WHEN '英语' THEN score ELSE 0 END ) 英语
FROM student
GROUP BY user_name;