`
vipbooks
  • 浏览: 148983 次
  • 性别: 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  
后一种不能处理排序……
前一种可以把排序放最里边的循环。

相关推荐

    亚太面试总结

    例如,在Oracle数据库中,可以使用`ROWNUM`关键字来实现分页。 - 示例SQL语句如下: ```sql SELECT * FROM (SELECT a.*, ROWNUM r FROM TB_STUDENT) WHERE r BETWEEN 2 AND 10 ``` - 这条SQL语句会查询出第二条...

    sqltoy-orm框架系统-其他

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

    java之hibernate和spring技术难点及其要点总结

    - **Java排序算法汇总**:了解并熟练掌握各种排序算法对于提高算法设计能力很有帮助。 - **Java并发控制**:学习如何正确地使用并发工具类(如`Volatile`、`ReentrantLock`等)来构建安全的多线程应用。 - **Java...

    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 打印...

    数据分析师面试试题汇总.docx

    对于大量输出,采用分页查询等方式可以有效减轻服务器负担。 #### 21. 非结构化数据转换 - **知识点**: 数据转换、文本挖掘 - **详细说明**: 将非结构化数据转换为结构化数据有助于后续分析。这一过程通常涉及数据...

    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 为...

Global site tag (gtag.js) - Google Analytics