在Oracle数据库中,数据分页功能是必不可少的操作,
Oracle数据库分页查询语句有三种写法:
--1.根据ROWID 来分
select * from nmb
where rowid in(
select rid from (
select rownum rn,rid from (
select
rowid rid,userid from nmb order by userid desc )
where rownum
<30)
where rn>20)
order by userid desc;--效率最高
--2.按分析函数来分页
select * from
(select t.*,row_number() over(order by
userid desc)
rk from nmb t
)
where rk<30 and rk>20
--执行正确(但是效率最低)
--3.按rownum来分页
select * from (
select t.*,rownum rn from (
select *
from nmb order by userid desc
)t where rownum<30
)where rn>20
--执行正确,效率比2高