代码解析:
SELECT b表.*,ROWNUM FROM
(SELECT a.*,ROWNUM rn FROM a表 (WHERE 条件...多个)) b
WHERE b.rn>起始索引 AND b.rn < 结束索引;
分页原理:(没有条件)
第一步:从什么开始取值。。。?
第二部:从哪里结束取值。。。?
分页原理:(有条件)第一步:分析条件。。。(把有条件的数据查询出来作为新表来实现分页)
第二步:从什么开始取值。。。?第三部:从哪里结束取值。。。?
例子:
以员工表为列:( 查询部门编号为10员工信息,展示前2条;
条件:(部门编号=30),每页2条数据)
第一步:查询部门编号为30的所有员工信息
SELECT a.*,ROWNUM rn FROM emp a WHERE deptno = 30;
第二步:在第一步的基础上加分页
第一页:
SELECT b.*,ROWNUM FROM
(SELECT a.*,ROWNUM rn FROM emp a WHERE deptno = 30) b
WHERE b.rn>0 AND b.rn < 3;
第二页
SELECT b.*,ROWNUM FROM
(SELECT a.*,ROWNUM rn FROM emp a WHERE deptno = 30) b
WHERE b.rn>2 AND b.rn < 5;