SQL行列转换
现有一个表结构如下:
此表中的三个字段分别为学生的学号,课程号和成绩,我们通过SQL行列转换,可以让学生的各科成绩在一行显示,效果如下:
当某个学生的某门课的成绩不存在是以0代替。
我们可以用下面的SQL语句来实现:
1 select student_id, 2 max(case course_id when '01' then grade else 0 end) as "chinese", 3 max(case course_id when '02' then grade else 0 end) as "math", 4 max(case course_id when '03' then grade else 0 end) as "english" 5 from score 6 group by student_id;