oracle分页的两种方法:
1、使用rownum分页。
select * from(select rownum rn ,t.* from (select * from LN_TEST_STUDENT) t where rownum<=4) where rn>=2 (其中LN_TEST_STUDENT为测试表)
注:
rownum是从1开始,所以使用rownum>1是无法将第二行之后的数据查出的,要想查处某一行之后的数据,需要用子查询的方法,同时要注意起别名,否则无法区别rownum是子查询还是主查询的列。
2、使用rowid分页。
select * from LN_TEST_STUDENT where rowid in(select rid from (select rownum rn,rid from(select rowid rid from LN_TEST_STUDENT)where rownum<=4) where rn>=2)
关于两者性能的比较:
普遍来说rowid的速度要快于rownum,尤其当数据量大的时候。