在Oracle中,ROWNUM是一個偽列,可以用來給查詢結果的每一行分配一個唯一的序號。它在查詢結果返回之前就已經確定,而不是在查詢結束后計算。使用ROWNUM可以實現分頁、排序等功能。
下面是一些使用ROWNUM的常見示例:
SELECT *
FROM table_name
WHERE ROWNUM <= N;
SELECT *
FROM (
SELECT t.*, ROWNUM AS rn
FROM table_name t
WHERE ROWNUM <= end_row
)
WHERE rn >= start_row;
其中,start_row和end_row是起始和結束的行號。
SELECT *
FROM (
SELECT *
FROM table_name
ORDER BY column_name
)
WHERE ROWNUM <= N;
這樣可以獲取排在前N位的記錄。
需要注意的是,ROWNUM是在WHERE子句之前計算的,所以如果要使用ROWNUM進行篩選,必須將其嵌套在子查詢中,然后在外部查詢中使用。