(四)分页查询

1.简单分页

需求: 分页查询学生表,每页十条记录

分析:我们在 ORACLE 进行分页查询,需要用到伪列 ROWNUM 和嵌套查询
我们首先显示前 10 条记录,语句如下:

select rownum,ta.* from  score ta 
where rownum10

分析:我们在 ORACLE 进行分页查询,需要用到伪列 ROWNUM 和嵌套查询
我们首先显示前 10 条记录,语句如下:

select rownum,ta.* from  score ta 
where rownum>10 and rownum20

嗯?怎么没有结果?
这是因为 rownum 是在查询语句扫描每条记录时产生的,所以不能使用“大于”符号,只能使用“小于”或“小于等于” ,只用“等于”也不行。那怎么办呢?我们可以使用子查询来实现

select * from (
select rownum as rn,ta.* from  score ta 
)
where rn>10 and rn ≤ 20

2.基于排序的分页

需求:分页查询学生表,每页十条记录,要去按照分数降序排序

select * from (
select rownum as rn,tb.* from (
select * from  score ta 
order by score
) tb
)
where rn > 10
作者:郭佳豪  创建时间:2023-10-18 09:53
最后编辑:郭佳豪  更新时间:2023-10-18 17:32