oracle分页查询sql(oracle如何实现分页查询)

在Oracle数据库中,可以使用ROWNUM或者ROW_NUMBER()函数进行分页查询。

图片[1]-oracle分页查询sql(oracle如何实现分页查询)-不念博客

以下是两种分页查询SQL的示例

使用ROWNUM进行分页查询

SELECT *
FROM (SELECT t.*, ROWNUM r
      FROM (SELECT * FROM your_table ORDER BY some_column) t
      WHERE ROWNUM <= page_size * (page_number))
WHERE r > page_size * (page_number - 1);

这里your_table是你要查询的表名,some_column是用于排序的字段,page_size是每页显示的记录数,page_number是当前页码。

例如,查询表employees的第2页数据,每页显示10条记录,按id字段排序:

SELECT *
FROM (SELECT t.*, ROWNUM r
      FROM (SELECT * FROM employees ORDER BY id) t
      WHERE ROWNUM <= 10 * 2)
WHERE r > 10 * (2 - 1);

使用ROW_NUMBER()函数进行分页查询(推荐)

SELECT *
FROM (SELECT t.*, ROW_NUMBER() OVER (ORDER BY some_column) r
      FROM your_table t)
WHERE r BETWEEN page_size * (page_number - 1) + 1 AND page_size * page_number;

这里your_table是你要查询的表名,some_column是用于排序的字段,page_size是每页显示的记录数,page_number是当前页码。

例如,查询表employees的第2页数据,每页显示10条记录,按id字段排序:

SELECT *
FROM (SELECT t.*, ROW_NUMBER() OVER (ORDER BY id) r
      FROM employees t)
WHERE r BETWEEN 10 * (2 - 1) + 1 AND 10 * 2;

使用ROW_NUMBER()函数进行分页查询在大多数情况下效率更高,因此推荐使用这种方法。

© 版权声明
THE END