ORACLE分页查询SQL语句

  1. 无ORDER BY排序的写法。(效率最高)

    经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!

    SELECT *
    FROM (SELECT ROWNUM AS rowno, t.*
          FROM emp t
          WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                          AND TO_DATE ('20060731', 'yyyymmdd')
          AND ROWNUM <= 20) table_alias
    WHERE table_alias.rowno >= 10;
  2. 有ORDER BY排序的写法。(效率较高)

    (经过测试,此方法随着查询范围的扩大,速度也会越来越慢哦!)

    SELECT *
    FROM (SELECT tt.*, ROWNUM AS rowno
          FROM (SELECT t.*
                FROM emp t
                WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                AND TO_DATE ('20060731', 'yyyymmdd')
                ORDER BY create_time DESC, emp_no) tt
             ) table_alias
    WHERE table_alias.rowno >= 10
    AND table_alias.rowno <= 20;

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tuyrk@qq.com

文章标题:ORACLE分页查询SQL语句

文章字数:176

本文作者:神秘的小岛岛

发布时间:2019-12-25, 09:11:45

最后更新:2019-12-25, 09:19:59

原始链接:https://www.tuyrk.cn/sql/paging-query-sql/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏