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

 

posted on 2014-05-13 19:24  要成功,就要打败另一个自己  阅读(115)  评论(0编辑  收藏  举报