有张学生表
有张课程
有张成绩表
用SQL语句写出所有学生的所有课程的成绩,
SQL语句如下:
得出的结果示例如下:
我不明白的为什么上面的SQL语句能得到正确结果。
首先上面的SQL语句连接后,有个类似于这样的表
然后一条一条地执行表中的数据,第一条数据,确实是语文,可以得到语文分数
然后再执行第二个Case ,应该显示结果为null啊…好乱
我想知道 case语句是如何执行 得到正确结果的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你这问题是因为max原因,你把语句拆一下就理解过程了
1、去掉group by和max,得到的就是你理解的过程
2、再第一步基础上进行人员分组和MAX取每列最大值,得到每门课的最大值。就是case when中没列唯一有值的。