在Oracle中,可以使用ROWNUM
實(shí)現(xiàn)分頁查詢。
SELECT *
FROM (
SELECT t.*, ROWNUM AS rn
FROM (
-- 原始查詢語句
SELECT *
FROM your_table
-- 其他篩選條件和排序方式
WHERE ...
ORDER BY ...
) t
WHERE ROWNUM <= :pageSize * :pageNumber -- 每頁顯示的記錄數(shù) * 當(dāng)前頁碼
)
WHERE rn > :pageSize * (:pageNumber - 1) -- 每頁顯示的記錄數(shù) * (當(dāng)前頁碼 - 1)
:pageSize
表示每頁顯示的記錄數(shù)。
:pageNumber
表示當(dāng)前頁碼。
假設(shè)每頁顯示10條記錄,要查詢第2頁的數(shù)據(jù),可以將:pageSize
設(shè)置為10,:pageNumber
設(shè)置為2。
注意,Oracle中的ROWNUM
是在查詢結(jié)果返回之后再進(jìn)行排序的,因此需要在內(nèi)部嵌套一層子查詢,然后使用ROWNUM
進(jìn)行篩選。