在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。