在日常工作中,或者面试过程中,常常会碰到要求用SQL语句实现行转列。形式如下:
select * from test;
而面试官要求查询结果如下展示:
或者这样:
其实很简单~我们可以使用case when语句进行行转列操作。代码如下:
case1:
select name,max(case when subject='语文' then score else 0 end) as 语文 ,max(case when subject='数学' then score else 0 end) as 数学, max(case when subject='英语' then score else 0 end) as 英语 from test group by name;
case2:
select name,sum(ca