论坛首页 综合技术论坛

Oracle 分页算法汇总

浏览 9113 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-04-09  
    这是我找到的一些关于Oracle分页的算法,大家那里还有没有其他好的算法没?我们大家一起分享一下!

-- Oracle 分页算法一
select * from (
       select page.*,rownum rn from (select * from help) page 
       -- 20 = (currentPage-1) * pageSize + pageSize
       where rownum <= 20
)
-- 10 = (currentPage-1) * pageSize
where rn > 10;

-- Oralce 分页算法二
-- 20 = (currentPage-1) * pageSize + pageSize
select * from help where rownum<=20
minus 
-- 10 = (currentPage-1) * pageSize
select * from help where rownum<=10;

   发表时间:2011-01-13  
后一种不能处理排序……
前一种可以把排序放最里边的循环。
0 请登录后投票
   发表时间:2011-02-15  
sql太简单了,一般用三层分页
0 请登录后投票
   发表时间:2011-02-16  
泛舟天下 写道
sql太简单了,一般用三层分页


如果分页的时候还用到了排序就会用到三层结构,根据需求不同和Oracle的版本不同选择不同的分页方式,当然还需要根据不同场景进行相应的测试。
0 请登录后投票
   发表时间:2011-02-16  
为了回复你,专门做了javaeye的测试,楼主的第二种分页算法让我震惊了一下,呵呵。不知道楼主的这个星星是怎么得到的。

帮楼主解疑一下,itpub 的 yangtingkun 对oracle的分页做过深入的研究。

Oracle分页查询格式(一):http://yangtingkun.itpub.net/post/468/100278

Oracle分页查询格式(二):http://yangtingkun.itpub.net/post/468/101703

Oracle分页查询格式(三):http://yangtingkun.itpub.net/post/468/104595

Oracle分页查询格式(四):http://yangtingkun.itpub.net/post/468/104867

Oracle分页查询格式(五):http://yangtingkun.itpub.net/post/468/107934

Oracle分页查询格式(六):http://yangtingkun.itpub.net/post/468/108677

Oracle分页查询格式(七):http://yangtingkun.itpub.net/post/468/109834

Oracle分页查询格式(八):http://yangtingkun.itpub.net/post/468/224557

Oracle分页查询格式(九):http://yangtingkun.itpub.net/post/468/224409

Oracle分页查询格式(十):http://yangtingkun.itpub.net/post/468/224823

Oracle分页查询格式(十一):http://yangtingkun.itpub.net/post/468/485481

Oracle分页查询格式(十二):http://yangtingkun.itpub.net/post/468/485496
0 请登录后投票
   发表时间:2011-03-04  
哈哈,非常感谢四楼的回复和补充,SQL分页的方法有很多,还在总结中,现在工作比较忙,等有时间了再整理一下与大家分享!

没有最好的,只有最适合的!
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics