当前位置: 代码迷 >> Oracle管理 >> oracle分页查询解决办法
  详细解决方案

oracle分页查询解决办法

热度:38   发布时间:2016-04-24 05:35:59.0
oracle分页查询
--优化分页查询语句
select m.*
  from (select rownum rownnum_, t.* from (select * from sales m where 1 = 1 order by m.cust_id) t where rownum < 16) m  
 where rownnum_ > 2;
 
 --没有优化分页查询语句
 select m.*
  from (select rownum rownnum_, t.* from (select * from sales m where 1 = 1 order by m.cust_id) t ) m where rownnum_<16  
 and rownnum_>2 ;

这是我在ORACLE书上面看到的查询 例子。
  一个是 优化后的 一个是没有优化的。
  第一个查询 只用了 1S 第二个查询是7S 
  但是第二个没有优化的查询 我能理解 觉得是我想要的 分页
 但是第一个 虽说快 但是 感觉结果只是达到了分页效果 。。
  问下 大家分页是怎么做到的呢?
  这是ORACLE 自己的表 SH用户的

------解决方案--------------------
select *
from (select m.*,row_number() over(order by m.cust_id) rn from sales m )
where rn between 3 and 15
  相关解决方案