
思路:
step1:CASE ... WHEN ... 列变行
step2:相同name整合成一行。group by + 聚合函数
SELECT
name,
max(CASE
WHEN kecheng='语文' AND fenshu>=80 THEN '优秀'
WHEN kecheng='语文' AND fenshu>=60 THEN '及格'
WHEN kecheng='语文' AND fenshu<60 THEN '不及格'
END) as `语文`,
max(CASE
WHEN kecheng='数学' AND fenshu>=80 THEN '优秀'
WHEN kecheng='数学' AND fenshu>=60 THEN '及格'
WHEN kecheng='数学' AND fenshu<60 THEN '不及格'
END) as `数学`,
max(CASE
WHEN kecheng='英语' AND fenshu>=80 THEN '优秀'
WHEN kecheng='英语' AND fenshu>=60 THEN '及格'
WHEN kecheng='英语' AND fenshu<60 THEN '不及格'
END) AS `英语`
FROM t_score
GROUP BY name;
本文介绍了一种使用SQL查询将学生的课程分数转换为等级的方法。通过CASE WHEN语句实现不同科目的分数到优秀、及格和不及格等级的转换,并利用GROUP BY进行数据整合。
2434

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



