Oracle的分页机制主要不外乎两种方法,
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 ; |
|