美文网首页
Oracle 分页

Oracle 分页

作者: zx_freedom | 来源:发表于2018-09-10 17:22 被阅读0次

    一、 ROWNUM

    一般情况下使用这种查询,

    但是数据量增大以后,比如共10000页 想看第9999页 这种情况 内层查询数据量十分大 查询十分缓慢,这种时候推荐使用第二种分页方式

    SELECT *

      FROM (SELECT ROW_.*, ROWNUM ROWNUM_

              FROM (SELECT *

                      FROM TABLE1

                    WHERE TABLE1_ID = XX

                    ORDER BY GMT_CREATE DESC) ROW_

            WHERE ROWNUM <= 20)

    WHERE ROWNUM_ >= 10;

    二 、ROWID

    这种情况只适合

    比如10000条记录中我们经常需要查9000-9100及其以后的数据
    SELECT *

      FROM (SELECT RID

              FROM (SELECT R.RID, ROWNUM LINENUM

                      FROM (SELECT ROWID RID

                              FROM TABLE1

                            WHERE TABLE1_ID = XX

                            ORDER BY order_date DESC) R

                    WHERE ROWNUM <= 20)

            WHERE LINENUM >= 10) T1,

          TABLE1 T2

    WHERE T1.RID = T2.ROWID;

    其中内层查询T1只查询ROWID,其余外层查询T2查询具体的业务信息

    参考链接Oracle的分页实现 - CSDN博客

    相关文章

      网友评论

          本文标题:Oracle 分页

          本文链接:https://www.haomeiwen.com/subject/gqajgftx.html