表内容:
姓名 课程 分数
张三 语文 74张三 数学 83
张三 物理 93
张三 德语 null
李四 语文 74
李四 数学 84
李四 物理 94
李四 英语 80
想变成(得到如下结果):
姓名 语文 数学 物理 英语 德语
---- ---- ---- ----
李四 74 84 94 ? 60
张三 74 83 93 80 ?
select 姓名,
sum(case when 课程='语文' then 分数 else 0 end) 语文,
sum(case when 课程='数学' then 分数 else 0 end) 数学,
sum(case when 课程='物理' then 分数 else 0 end) 物理,
sum(case when 课程='英语' then 分数 else 0 end) 英语,
sum(case when 课程='德语' then 分数 else 0 end) 德语
from tb
group by 姓名