SQL 列 转换成 查询出来的 行

时间:2021-08-03 02:43:09

查询  每个学生 的  (姓名,语文,数学,英语,成绩)为列

表结构如下:

student: 学生表

SQL 列 转换成 查询出来的 行

grade 成绩表 :

SQL 列 转换成 查询出来的 行

查询出如下效果:

SQL 列 转换成 查询出来的 行

SQL如下:

select s.name,a.* from student s,
(select sid,
max(CASE kemu WHEN '语文' THEN chengji ELSE 0 END) '语文',
max(CASE kemu WHEN '数学' THEN chengji ELSE 0 END) '数学',
max(CASE kemu WHEN '英语' THEN chengji ELSE 0 END) '英语'
from grade GROUP BY sid ) a
where s.id = a.sid