假设有如下的表:


select student_id,
max(case project when 'Math' then grade end)Math,
max(case project when 'English' then grade end)English,
max(case project when 'Chinese' then grade end)Chinese
from grades group by student_id;
如果有空记录,例如有个student_id为4的学生没有数学成绩的话,可以使用else填补空缺:
select student_id,
max(case project when 'Math' then grade else null end)Math,
max(case project when 'English' then grade else null end)English,
max(case project when 'Chinese' then grade else null end)Chinese
from grades group by student_id;
显示的结果为:

本文介绍如何使用SQL语句,通过case...when结构结合max函数和group by语句,从grades表中按科目(Math, English, Chinese)获取每个学生的最高分。并展示了如何处理学生可能缺失某科目成绩的情况。
2905

被折叠的 条评论
为什么被折叠?



