Mybatis+Oracle:条件分页

代码解析:

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;        

 
 



 
 

猜你喜欢

转载自blog.csdn.net/love_moon821/article/details/78870104