oracle数据库如何分页

Oracle 数据库分页利用 ROWNUM 伪列或 FETCH 语句实现:ROWNUM 伪列用于通过行号过滤结果,适用于复杂查询。FETCH 语句用于获取指定数量的第一行,适用于简单查询。

Oracle 数据库分页机制

在 Oracle 数据库中,可以使用 ROWNUM 伪列或 FETCH 语句来实现分页。

ROWNUM 伪列

语法:

SELECT * FROM table_name WHERE ROWNUM <=  * 

说明:

  • ROWNUM 是一个伪列,表示当前行的行号。
  • page_size 是每页的行数。
  • page_number 是要获取的页数。

例如:

获取第 2 页,每页 5 行的数据:

SELECT * FROM table_name WHERE ROWNUM <= 5 * 2

FETCH 语句

语法:

FETCH FIRST  ROWS ONLY FROM table_name

说明:

  • FETCH 语句返回指定数量的第一行。
  • page_size 是每页的行数。

例如:

获取第二页,每页 5 行的数据:

FETCH FIRST 5 ROWS ONLY FROM table_name
OFFSET 5 ROWS

选择分页方法

  • 如果需要在查询中进行复杂的过滤或排序,则使用 ROWNUM 伪列。
  • 如果只需要获取指定数量的第一行(不进行复杂的过滤或排序),则使用 FETCH 语句。