Oracle的分页机制主要不外乎两种方法,
1. 使用rownum序列,
这种方法的好处是, 在查找前几页时速度比较快,
缺点时, 查询出来的数据不是完全准确的, 在查询的数据量很大时, 特别是查询最后几页时速度非常慢.
select column1,column2,..
from (
select rownum trow,col1,col2,....,coln
from table_name
where ...
)
where trow between m and n;
2. 使用Oracle8i开始支持的分析函数
这种方法取出来的数据准确性相当高, 查询效率比较稳定. 建议使用这种方法.
select column1,column2,..
from (
select row_number() over(order by colx desc /asc ) trow
col1,col2,....,coln
from table_name
where ...
)
where trow between m and n ;