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