Mybatis+Oracle:条件分页

来源:互联网 发布:博斯曼法案 知乎 编辑:程序博客网 时间:2024/06/03 12:04

代码解析:

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;