oracle 深度分页
时间: 2023-11-24 17:52:48 浏览: 121
以下是Oracle实现深度分页的两种方法:
1.使用ROWNUM和子查询
```sql
SELECT a1.*, ROWNUM rn
FROM (SELECT * FROM 表名 ORDER BY 排序字段) a1
WHERE ROWNUM <= 结束行数
AND NOT EXISTS (
SELECT 1 FROM (SELECT * FROM 表名 ORDER BY 排序字段) a2
WHERE ROWNUM <= 开始行数-1
)
```
2.使用ROW_NUMBER()函数
```sql
SELECT *
FROM (
SELECT a1.*, ROW_NUMBER() OVER (ORDER BY 排序字段) rn
FROM 表名 a1
)
WHERE rn BETWEEN 开始行数 AND 结束行数
```
其中,开始行数和结束行数是需要用户指定的参数,排序字段是根据用户需求指定的表中的某个字段。
阅读全文