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