Oracle分页查询

# 分页查询

每页显示... 注意:id列不连续,结果就不靠谱

--员工表,共有25名员工,每页显示5名员工,计算第1页的员工是谁?

--伪列:不属于任何一张表,但是会被所有的表共享
--rownum:不同的SQL语句在执行时,rownum的值不一致
--在相同SQL语句在执行时,rownum的值不变

--使用“伪列”,来满足表中再起一个排序的列。

select * from (
select x.*,rownum r from (
select * from s_emp
)x
)
where r>0 and r<=5

分析:

最内层:即将被分页的全部数据(可能会排序)
  select * from s_emp

中间层:给每行编号(启动伪列),定义成y表
  select x.*,rownum r from x

最外层:数据过滤,分页开始
  select * from y where r>0 and r<=5

原文地址:https://www.cnblogs.com/wzhqzm/p/13362880.html