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

2023年 7月 30日 32.9k 0

在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 - 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 - 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()函数进行分页查询在大多数情况下效率更高,因此推荐使用这种方法。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论