热线电话:13121318867

登录
2020-05-06 阅读量: 879
语句的内在运行顺序,欢迎朋友补充

今天看到一个经典题目,“查询每门课程的第二第三名”

在学习开窗函数过后知道了可以用rank开窗函数做,

但是如果用方法二的运算如下:

select * from sc sc1 where (select sum(score>sc1.score) from sc where c_id=sc1.c_id) in (1,2);

这行代码的内在运行顺序特别重要:

首先是sc1遍历,第一条取出来后,sc1.score成为常量,参与子查询,子查询结果作为where条件进行判断是否输出sc1这一行,而后sc1第二行同理。

这样总结出来,感觉是外层查询先遍历,但是内层查询先运算?

不知道这样理解是不是对的。。。

97.6824
8
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子