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