Oracle分页

来源:互联网 发布:网络兼职诈骗专题分析 编辑:程序博客网 时间:2024/06/06 03:56

无ORDER BY排序直接按ROWNUM 分页

SELECT *  FROM (SELECT ROWNUM AS RN, T.*          FROM TB_TABLE T         WHERE  ROWNUM <= 20) TB_A WHERE TB_A.RN >= 10;

注意:上述方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然。

SELECT *  FROM (SELECT ROWNUM AS RN, T.* FROM TB_TABLE T) TB_A WHERE TB_A.RN <= 20   AND TB_A.RN >= 10;

注意:上述方法随着查询数据量的扩张,速度会越来越慢.

2:有ORDER BY排序分页。

 SELECT *   FROM (SELECT ROWNUM AS RN, TB_A.*           FROM (SELECT T.* FROM TB_TABLE T ORDER BY T.COLUMN DESC) TB_A          WHERE ROWNUM <= 20) TB_B  WHERE TB_B.RN >= 10;

注意:上述方法随着查询范围的扩大,速度也会越来越慢。

SELECT *  FROM (SELECT ROWNUM AS RN, TB_A.*          FROM (SELECT * FROM TB_TABLE T ORDER BY T.COLUMN) TB_A) TB_B WHERE TB_B.RN BETWEEN 10 AND 20;

注意:上述方法随着查询范围的扩大,速度会越来越慢

oracle的分页方法很多,以上是最简单的分页方法。

0 0
原创粉丝点击