oracle分页查第5页数据,Oracle 数据库分页查询的三种方法

2022-12-24 07:58:36

一、Oracle 数据库分页查询的三种方法

1.简介

不能对 rownum 使用 >(大于或等于 1 的数值)、>=(大于 1 的数值)、=(不等于 1 的数值),否则无结果。所以直接用 rownum 的时候只能从 1 开始, 比如 rownum >1 没有记录,因为第一条不满足去掉的话,第二条的 rownum 又成了 1,所以永远没有满足条件的记录。

SELECT *

FROM emp

WHERE rownum >= 1;

b071951a5e30f8dbb3aa42a610cd795b.png

以下 sql 均无结果

SELECT *

FROM emp

WHERE rownum > 1;

SELECT *

FROM emp

WHERE rownum >= 2;

SELECT *

FROM emp

WHERE rownum = 0;

SELECT *

FROM emp

WHERE rownum < 1;

二、rownum 不从 1 开始分页查询的三种方法

SELECT *

FROM (

SELECT rownum AS rnum, e.*

FROM emp e

)

WHERE rnum >= 10;

e2ef2f2fdd717d83c78657e737bd6727.png

1.分页查询方法一

SELECT *

FROM (

SELECT rownum AS rnum, e.*

FROM emp e

WHERE rownum <= 10

)

WHERE rnum >= 5;

2ec119242bfff850e136732e39518777.png

2.分页查询方法二

SELECT *

FROM (

SELECT rownum AS rnum, e.*

FROM emp e

)

WHERE rnum BETWEEN 3 AND 6;

38939894db90ab3ac31fd97394fabb56.png

3.分页查询方法三

SELECT *

FROM (

SELECT rownum AS rnum, e.*

FROM (

SELECT *

FROM emp

) e

WHERE rownum <= 10

)

WHERE rnum >= 8;

ddaab0520fc6c50cd3f87423f5f9634e.png

参考资料

  • 作者:Early Start
  • 原文链接:https://blog.csdn.net/weixin_32523999/article/details/116338146
    更新时间:2022-12-24 07:58:36