在Oracle數據庫中,ROWNUM
是一個偽列(pseudocolumn),它表示查詢結果集中行的編號。ROWNUM
在查詢處理過程中自動生成,通常用于限制查詢結果的行數或對結果集進行排序。
以下是ROWNUM
的一些常見用法:
SELECT * FROM employees
WHERE ROWNUM <= 10;
這個查詢將返回employees
表中的前10行。
ORDER BY
子句一起使用:SELECT * FROM (
SELECT * FROM employees
ORDER BY salary DESC
)
WHERE ROWNUM <= 5;
這個查詢將返回按薪水降序排列的employees
表中的前5行。
ROWNUM
進行分頁:-- 第1頁,每頁顯示10條記錄
SELECT * FROM (
SELECT a.*, ROWNUM rn
FROM (
SELECT * FROM employees
ORDER BY salary DESC
) a
WHERE ROWNUM <= 10
)
WHERE rn >= 1;
-- 第2頁,每頁顯示10條記錄
SELECT * FROM (
SELECT a.*, ROWNUM rn
FROM (
SELECT * FROM employees
ORDER BY salary DESC
) a
WHERE ROWNUM <= 20
)
WHERE rn >= 11;
這些查詢將實現對employees
表的分頁查詢,每頁顯示10條記錄。
需要注意的是,ROWNUM
在查詢處理過程中自動生成,因此在使用ROWNUM
時,通常需要將其與子查詢或臨時表結合使用,以確保正確地限制或排序查詢結果。