在Oracle中,可以使用ROWNUM
实现分页查询。
SELECT *
FROM (
SELECT t.*, ROWNUM AS rn
FROM (
-- 原始查询语句
SELECT *
FROM your_table
-- 其他筛选条件和排序方式
WHERE ...
ORDER BY ...
) t
WHERE ROWNUM <= :pageSize * :pageNumber -- 每页显示的记录数 * 当前页码
)
WHERE rn > :pageSize * (:pageNumber - 1) -- 每页显示的记录数 * (当前页码 - 1)
:pageSize
表示每页显示的记录数。
:pageNumber
表示当前页码。
假设每页显示10条记录,要查询第2页的数据,可以将:pageSize
设置为10,:pageNumber
设置为2。
注意,Oracle中的ROWNUM
是在查询结果返回之后再进行排序的,因此需要在内部嵌套一层子查询,然后使用ROWNUM
进行筛选。