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第二行同理。
这样总结出来,感觉是外层查询先遍历,但是内层查询先运算?
不知道这样理解是不是对的。。。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论