oracle 分页的两种方式

实例:查询5-8名学生的姓名与成绩

--oracle的分页1 between 方式(分三次查询,第一次只作排序,第二次给表加上rownum序列,第三次为查询结果)

select s.scorenumber from(
select rownum row_num,score.*
from (select * from scores order by scorenumber desc) score) s
where s.row_num between 5 and 8

--oracle的分页2(分三次查询,第一次只作排序,第二次给表加上rownum序列并排除后面的数据,第三次为排除的前面数据的查询结果)
select s.scorenumber from(
select rownum row_num,score.*
from (select * from scores order by scorenumber desc) score
where rownum<9
) s
where s.row_num >4

--查询5-8名学生的姓名与成绩
select stu.stuname 姓名,s.scorenumber 成绩 from stuinfo stu
left join scores s on stu.stuno=s.stu_id
where s.stu_id in(select sss.stu_id from(
select rownum row_num,score.*
from (select * from scores order by scorenumber desc) score) sss
where sss.row_num between 5 and 8)

原文地址:https://www.cnblogs.com/w-wu/p/11683837.html