SQL行转列
现有一张表,表字段有学生姓名、学习科目、科目成绩,现想用SQL查询显示每个学生的姓名、科目及科目的分数,学生姓名纵向展示为一列,科目展示为一行,下显示学生对应科目的成绩。
学生成绩信息表如下:
查询显示表格如下:
实现SQL:
SELECT NAME,
SUM(CASE WHEN km='数学' THEN score END) AS '数学',
SUM(CASE WHEN km='语文' THEN score END) AS '语文',
SUM(CASE WHEN km='英语' THEN score END) AS '英语' FROM student GROUP BY NAME