Oracle分页实现

10级学员  张帅鹏课堂总结

简单分析下如何实现:

考虑mySql中的实现分页,select * from 表名  limit 开始记录数,显示多少条;就可以实现我们的分页效果。

但是在oracle中没有limit关键字,但是有 rownum字段

rownum是一个伪列,是oracle系统自动为查询返回结果的每行分配的编号,第一行为1,第二行为2,以此类推。。。。

第一种:

SELECT * FROM
(
         SELECT A.*, ROWNUM RN
         FROM (SELECT * FROM TABLE_NAME) A
         WHERE ROWNUM <= 40
)
WHERE RN >= 21

其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。

上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 40这句上。

选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小值。而另一种方式是去掉查询第二层的WHERE ROWNUM <= 40语句,在查询的最外层控制分页的最小值和最大值。

第二种:

select * from (select e.*,rownum  r from  (select * from emp order by sal desc) e ) e1 where e1.r>21 and e1.r<=40;

红色部分:按照工资降序排序并查询所有的信息。

棕色部分:得到红色部门查询的值,并查询出系统的rownum并指定上别名。这一句就比较关键,起了一个过渡的作用,首先要算出rownum来对红色部分指定上序号,也可以为蓝色外面部分用到这个变量。指定上查询的开始记录数和结束记录的条件。

蓝色部分:指定记录从第几条开始到第几条结束,取出棕色部门的值来作为查询条件的变量

总结:绝大多数的情况下,第一个查询的效率比第二个高得多。

Oracle分页实现相关推荐

  1. ORACLE分页SQL

    ORACLE分页SQL 1,使用rownum SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ...

  2. oracle分页的方法,Oracle数据库分页的集中方法(三种方法)

    在 做项目中用到了分页,下面说一下oracle分页的方法; 采用伪列 rownum 查询前10条记录 [sql] select * from t_user t where ROWNUM <10; ...

  3. Oracle分页查询语句(六)

    Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询语句(一):http://yangtingkun.itpub.net/post/468/100278 Oracl ...

  4. oracle 关联出现重复数据,ORACLE 分页查询出现重复记录的解决办法

    今天在用Oracle分页查询数据的时候出现了重复数据,有的数据无法查出,很郁闷,想了想,找了资料,发现问题 分页语句: select * from ( select row_.*, rownum ro ...

  5. 2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工

     ROWNUM的知识点 A ROWNUM按照oracle的默认机制生成. B rownum只能使用<=  <号,不能使用>  >= rownum的实现机制 rownum表示 ...

  6. oracle number类型_一文看懂Oracle分页实现方案的三种方式

    Oracle分页实现 闲来无事,整理下Oracle.mysql.mssql以及PG数据库的分页实现方式,大家可以简单做个对比,看下不同数据库在分页这块是怎么实现的.今天先介绍一下Oracle分页的实现 ...

  7. java sql分页_mysql、sqlserver、oracle分页,java分页统一接口实现

    定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量 oracle分页: select * from ( select mytable.*,rownum num from ...

  8. Oracle 分页与排序功能的4个查询语句

    查询内置的表emp 1. 查询前10条记录 SELECT * FROM emp WHERE ROWNUM <= 10; Oracle 分页和排序常用的4条查询语句之二,查询第11到第20条记录 ...

  9. ASP.NET调用Oracle分页存储过程并结合ASPnetpager分页控件 实现分页功能

    之前用的是GridView自带的分页功能,那速度啊慢的真实不行  ,决定自定义分页  Oracle库里有5W多条数据 AspnetPager做的还是不错,拿过来用 Oracle 分页存储过程: cre ...

  10. c oracle 分页工具类,Util工具类 跨Oracle、MySQL通用分页查询

    /**** 跨Oracle.MySQL通用分页查询*/public classPagingUtil { public static finalString MYSQL= "MYSQL&quo ...

最新文章

  1. 读取CSV文件内容,将其转换成JSON字符串输出
  2. 遇到大容量磁盘你该怎么办?
  3. springboot整合Druid使用
  4. 启用第三方Chrome插件
  5. matplotlib 知识点整理:ax与figure
  6. dotNetCore操作Redis(含CentOS7哨兵模式部署)
  7. 如何解除FSO上传程序小于200k限制?
  8. 基于NodeJS的HTTP server Plus 2:防盗链(referer)
  9. Android开发笔记(八十五)手机数据库Realm
  10. 侧栏广告 image flash
  11. 4.2 录制第一个jmeter性能测试脚本(http协议)
  12. python—wordcloud库绘制词云
  13. c语言实现http下载功能
  14. 上海科技大学计算机夏令营随笔
  15. python输入用户名和密码_验证Python中的用户名和密码输入
  16. VEMD11940FX01光学传感器
  17. 【CSDN竞赛第五期】“三而竭”采用等比求和公式法的思考
  18. bzoj 2876: [Noi2012]骑行川藏 二分+拉格朗日乘数法
  19. Blazor University (47)依赖注入 —— Singleton 依赖
  20. 棋牌游戏需要什么服务器

热门文章

  1. PLC之六部十层电梯整体框架
  2. 诛仙哪里炼器服务器最稳定,告别炼器难 《诛仙2》顶级炼器师云集诛仙电台
  3. parameter estimation for text analysis
  4. html如何添加音乐火狐,电脑如何将HTML书签导入进火狐浏览器中
  5. 网站长尾关键词对SEO优化起到什么作用
  6. 英语会话必须掌握的五种基本结构[转]
  7. bzoj 1064 noi2008 假面舞会题解
  8. 国产开发板各项性能测试--米尔MYD-YT507H开发板
  9. 2019年中国研究生数学建模竞赛-华为杯(九)
  10. python中完整爬取股票财务信息和公司基本信息