在Oracle数据库中,可以使用ROWNUM
或者ROW_NUMBER()
函数进行分页查询。
以下是两种分页查询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()
函数进行分页查询在大多数情况下效率更高,因此推荐使用这种方法。