rownum行号:当我们做select操作的时候,每查询一条"记录",就会在该行添加一个"行号"。行号从1开始,依次递增,不可以跳着走。
2.需求倒序获取前三条记录。
3.业务逻辑1.倒序查询
2.倒序获取前三条记录【错误逻辑】
细节:排序操作影响行号顺序
3.倒序获取行号
细节:排序操作影响行号顺序
4.倒序获取前三条记录
结论:如果使用排序,而且还想使用rownum行号的话,需要使用嵌套查询
4.语法--3.倒序获取前三条记录
---结论:如果使用排序,而且还想使用rownum行号的话,需要使用嵌套查询
select rownum,t.* from
(select rownum,e.* from emp e order by e.sal desc) t
where rownum < 4;
5.范例
(1)员工表
(2)实现过程
二.复杂案例
1.行号
rownum行号:当我们做select操作的时候,每查询一条"记录",就会在该行添加一个"行号"。行号从1开始,依次递增,不可以跳着走。
2.需求emp表工资倒序排列后,每页5条记录,查询第二页。
3.注意事项rownum是任何表通用,但是行号不可在前面加任何表名。例如:e.rownum错误写法
4.语法---案例:emp表工资倒序排列后,每页5条记录,查询第二页
---rownum是任何表通用,但是行号不可在前面加任何表名。例如:e.rownum错误写法
select e3.* from
(select rownum rm,e2.* from--子连接可以设置行号
(select rownum,e1.* from emp e1 order by e1.sal desc) e2
where rownum 5;
select * from emp;
5.范例
(1)员工表
(2)语法固定格式范例
(3)范例
三.总结
1.行号如何需要同时进行大于和小于的判断,需要使用嵌套条件查询。
2.行号前面不可以加表名。
3.行号的顺序根据当前查询条件指定。
4.select优先级大于where条件,而from大于select的优先级。
5.子连接可以设置别名,外侧where条件进行调用。