`
vipbooks
  • 浏览: 137235 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类

Oracle 分页算法汇总

阅读更多
    这是我找到的一些关于Oracle分页的算法,大家那里还有没有其他好的算法没?我们大家一起分享一下!

-- Oracle 分页算法一
select * from (
       select t.*,rownum rn from (select * from help) t 
       -- 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;

-- 12c最新的分页方式
-- 返回前3行
select * from help where 1 = 1 order by info fetch next 3 rows only;
-- 返回并列排名的行
select * from help where 1 = 1 order by info fetch next 3 rows with ties;

-- 分页
select * from help where 1 = 1 order by info offset 10 rows fetch next 1 rows only;

-- 返回10%行
select * from help where 1 = 1 order by info fetch first 10 percent rows only;
分享到:
评论
5 楼 vipbooks 2011-03-04  
哈哈,非常感谢四楼的回复和补充,SQL分页的方法有很多,还在总结中,现在工作比较忙,等有时间了再整理一下与大家分享!

没有最好的,只有最适合的!
4 楼 zy8643954 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
3 楼 vipbooks 2011-02-16  
泛舟天下 写道
sql太简单了,一般用三层分页


如果分页的时候还用到了排序就会用到三层结构,根据需求不同和Oracle的版本不同选择不同的分页方式,当然还需要根据不同场景进行相应的测试。
2 楼 泛舟天下 2011-02-15  
sql太简单了,一般用三层分页
1 楼 dwangel 2011-01-13  
后一种不能处理排序……
前一种可以把排序放最里边的循环。

相关推荐

    sqltoy-orm框架系统-其他

    7、提供分组汇总求平均算法(用算法代替sql避免跨数据库语法不一致) 8、分库分表 9、五种非数据库相关主键生成策略 10、elastic原生查询支持 11、elasticsearch-sql 插件模式sql模式支持     sqltoy-orm框架系统 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例045 自定义数字的加密/解密算法 76 实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例045 自定义数字的加密/解密算法 76 实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印...

    asp.net知识库

    分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 根据基本表结构及其数据生成 INSERT ... 的 SQL 简便的MS SQL 数据库 表内容 脚本 ...

    C#程序开发范例宝典(第2版).part13

    实例081 DataGridView控件的分页功能 108 实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为...

    C#程序开发范例宝典(第2版).part08

    实例081 DataGridView控件的分页功能 108 实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为...

    C#程序开发范例宝典(第2版).part02

    实例081 DataGridView控件的分页功能 108 实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为...

    C#程序开发范例宝典(第2版).part12

    实例081 DataGridView控件的分页功能 108 实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为...

    C#.net_经典编程例子400个

    第1章 窗体与界面设计 1 1.1 菜单应用实例 2 实例001 带历史信息的菜单 2 实例002 菜单动态合并 3 实例003 像开始菜单一样漂亮的菜单 4 实例004 任务栏托盘菜单 5 实例005 可以拉伸...

Global site tag (gtag.js) - Google Analytics