天天看点

Oracle分页详解Oracle分页详解

Oracle分页详解

分页步骤 使用子查询的方式来做 因为rownum 不支持大于号

–1.查询全量的数据

select * from emp;

–2.第二步以第一步的结果集作为一张表,限定条件是rownum小于结束行号,结果列把rownum作为结果集

select rownum rw,a.* from (select * from emp) a where rownum < 6;–第一页

–3.第三步以第二步的结果集作为一张表,限定条件是第二步的rownum的列大于开始行行号,结果集是*

select * from (select rownum rw,a.* from (select * from emp) a where rownum < 11) b where b.rw > 5;–第二页

select * from (select rownum rw,a.* from (select * from emp) a where rownum < 16) b where b.rw > 10;–第三页

pageNo:当前的页码   已知
pageSize:每页记录数   已知
startNum:开始行号   未知
endNum:结束行号     未知

pageNo   pageSize    startNum    endNum
  1         5           0           6 
  2         5           5           11
  3         5           10          16
  
  startNum = (pageNo -1)*pageSize;
  endNum = pageNo*pageSize + 1;