在 SQL 中,ROWNUM 是 Oracle 數據庫的一個偽列,用于表示查詢結果集中行的編號。要使用 ROWNUM 實現數據過濾,可以將其與 WHERE 子句或子查詢一起使用。
以下是使用 ROWNUM 進行數據過濾的兩種方法:
SELECT *
FROM (SELECT table_name.*, ROWNUM AS row_number
FROM table_name)
WHERE row_number BETWEEN start_row AND end_row;
這里,table_name
是你要查詢的表名,start_row
和 end_row
分別表示你想要獲取的行的范圍。例如,如果你想要獲取第 5 到第 10 行的數據,可以使用以下查詢:
SELECT *
FROM (SELECT table_name.*, ROWNUM AS row_number
FROM table_name)
WHERE row_number BETWEEN 5 AND 10;
SELECT *
FROM (SELECT table_name.*, ROWNUM AS row_number
FROM table_name
WHERE condition)
WHERE row_number BETWEEN start_row AND end_row;
這里,condition
是你要應用的過濾條件。例如,如果你想要獲取年齡大于 30 的前 5 行數據,可以使用以下查詢:
SELECT *
FROM (SELECT table_name.*, ROWNUM AS row_number
FROM table_name
WHERE age > 30)
WHERE row_number <= 5;
請注意,ROWNUM 只能用于限制 Oracle 數據庫中的結果集。如果你使用的是其他數據庫(如 MySQL、PostgreSQL 等),請使用相應數據庫的分頁功能。例如,在 MySQL 中,你可以使用 LIMIT 子句實現分頁。