Oracle分页实现
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分页实现相关推荐
- ORACLE分页SQL
ORACLE分页SQL 1,使用rownum SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ...
- oracle分页的方法,Oracle数据库分页的集中方法(三种方法)
在 做项目中用到了分页,下面说一下oracle分页的方法; 采用伪列 rownum 查询前10条记录 [sql] select * from t_user t where ROWNUM <10; ...
- Oracle分页查询语句(六)
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询语句(一):http://yangtingkun.itpub.net/post/468/100278 Oracl ...
- oracle 关联出现重复数据,ORACLE 分页查询出现重复记录的解决办法
今天在用Oracle分页查询数据的时候出现了重复数据,有的数据无法查出,很郁闷,想了想,找了资料,发现问题 分页语句: select * from ( select row_.*, rownum ro ...
- 2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工
ROWNUM的知识点 A ROWNUM按照oracle的默认机制生成. B rownum只能使用<= <号,不能使用> >= rownum的实现机制 rownum表示 ...
- oracle number类型_一文看懂Oracle分页实现方案的三种方式
Oracle分页实现 闲来无事,整理下Oracle.mysql.mssql以及PG数据库的分页实现方式,大家可以简单做个对比,看下不同数据库在分页这块是怎么实现的.今天先介绍一下Oracle分页的实现 ...
- java sql分页_mysql、sqlserver、oracle分页,java分页统一接口实现
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量 oracle分页: select * from ( select mytable.*,rownum num from ...
- Oracle 分页与排序功能的4个查询语句
查询内置的表emp 1. 查询前10条记录 SELECT * FROM emp WHERE ROWNUM <= 10; Oracle 分页和排序常用的4条查询语句之二,查询第11到第20条记录 ...
- ASP.NET调用Oracle分页存储过程并结合ASPnetpager分页控件 实现分页功能
之前用的是GridView自带的分页功能,那速度啊慢的真实不行 ,决定自定义分页 Oracle库里有5W多条数据 AspnetPager做的还是不错,拿过来用 Oracle 分页存储过程: cre ...
- c oracle 分页工具类,Util工具类 跨Oracle、MySQL通用分页查询
/**** 跨Oracle.MySQL通用分页查询*/public classPagingUtil { public static finalString MYSQL= "MYSQL&quo ...
最新文章
- 读取CSV文件内容,将其转换成JSON字符串输出
- 遇到大容量磁盘你该怎么办?
- springboot整合Druid使用
- 启用第三方Chrome插件
- matplotlib 知识点整理:ax与figure
- dotNetCore操作Redis(含CentOS7哨兵模式部署)
- 如何解除FSO上传程序小于200k限制?
- 基于NodeJS的HTTP server Plus 2:防盗链(referer)
- Android开发笔记(八十五)手机数据库Realm
- 侧栏广告 image flash
- 4.2 录制第一个jmeter性能测试脚本(http协议)
- python—wordcloud库绘制词云
- c语言实现http下载功能
- 上海科技大学计算机夏令营随笔
- python输入用户名和密码_验证Python中的用户名和密码输入
- VEMD11940FX01光学传感器
- 【CSDN竞赛第五期】“三而竭”采用等比求和公式法的思考
- bzoj 2876: [Noi2012]骑行川藏 二分+拉格朗日乘数法
- Blazor University (47)依赖注入 —— Singleton 依赖
- 棋牌游戏需要什么服务器