准备表和数据:
CREATE TABLE `user` (
`name` varchar(50) DEFAULT NULL,
`subject` varchar(50) DEFAULT NULL,
`score` int(11) DEFAULT NULL
);
insert into user values
('zhangsan' , 'chinese' , 10),
('zhangsan' , 'math' , 20),
('zhangsan' , 'english' , 30),
('lily' , 'chinese' , 40),
('lily' , 'math' , 50),
('lily' , 'english' , 60),
('mini' , 'chinese' , 70),
('mini' , 'math' , 80),
('mini' , 'english' , 90);
![mysql行转列 - 维子 - 左岸](http://img5.ph.126.net/ZmNLZVMxNnLKESCLKneEkg==/2565362937758210835.jpg)
case when 实现行转列
select name,
sum(case subject when'chinese'then score else0end)as