在Oracle數據庫中,可以使用ROW_NUMBER()窗口函數進行分頁查詢
SELECT *
FROM (
SELECT t.*, ROW_NUMBER() OVER (ORDER BY t.column_name) row_num
FROM your_table t
)
WHERE row_num BETWEEN start_row AND end_row;
其中:
your_table
是要查詢的表名。t.column_name
是排序依據的列名。start_row
和 end_row
分別表示分頁查詢的起始行號和結束行號。例如,假設有一個名為employees
的表,包含id
、name
和salary
列。現在想要按照salary
列降序排列,并獲取第2頁(每頁10條記錄)的數據,可以使用以下查詢:
SELECT *
FROM (
SELECT t.*, ROW_NUMBER() OVER (ORDER BY t.salary DESC) row_num
FROM employees t
)
WHERE row_num BETWEEN 11 AND 20;
這里,start_row
為11,end_row
為20。