在SQL中,ROWNUM是一個偽列,用于表示結果集中每一行的行號。在排序和篩選結果集時,ROWNUM可以用來限制結果集的行數或者指定返回的行的順序。
在排序結果集時,可以使用ROWNUM來限制返回的行數,例如只返回前N行:
SELECT *
FROM table_name
WHERE condition
ORDER BY column_name
FETCH FIRST N ROWS ONLY;
在篩選結果集時,可以使用ROWNUM來篩選出指定的行:
SELECT *
FROM (
SELECT *, ROWNUM as rnum
FROM table_name
WHERE condition
ORDER BY column_name
)
WHERE rnum <= N;
需要注意的是,在Oracle數據庫中,ROWNUM是在結果集返回之后才進行計算的,所以在篩選結果集時需要使用子查詢來先計算ROWNUM,然后再進行篩選。而在其他數據庫中,如MySQL和PostgreSQL,可以直接在WHERE子句中使用ROWNUM進行篩選。