问题是这样:从课程和成绩表中挑出每一门课程的最高分和最低分,所使用的SQL语句如下:
select c.f_name,min(g.f_grade) as mi,max(g.f_grade) as ma
from t_course c,t_grade g
where g.f_courseid=c.f_id
group by c.f_name
结果截图是:
现在要求要把行和列转换一下,这样问题就来了。
我可以从这张表中先分别挑出最大值和最小值,然后用Union连接起来。SQL语句如下:
----行列转换
select * from (
(select
max(case when f_name='C++' then ma else 0 end ) as "C++",
max(case when f_name='C语言' then ma else 0 end) C语言,
max(case when f_name='Oracle' then ma else 0 e

通过一个SQL查询,将课程和成绩表中的每门课程最高分和最低分进行行列转换。首先,使用CASE WHEN结合GROUP BY挑出每个课程的最大值和最小值,然后通过UNION ALL连接两部分结果,分别展示最高分和最低分,从而完成行列转换。

9124

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



