Oracle分页总汇
Oracle分页总汇select * from
(select a.*,rownum row_num from
(select * from mytable t order by t.id desc) a
where rownum<=10
) b where b.row_num >= 1 order by u_age desc; select * from (select a.*,rownum row_num from (select * from mytable t order by t.id desc) a) b where b.row_num between 1 and 10 .1.根据ROWID来分select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc;
执行时间0.03秒2.按分析函数来分select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980;
执行时间1.01秒3.按ROWNUM来分select * from(select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum<10000) where rn>9980;
执行时间0.1秒
其中t_xiaoxi为表名称,cid为表的关键字段,取按CID降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录
个人感觉1的效率最好,3次之,2最差--1:无ORDER BY排序的写法。(效率最高)
--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (Select ROWNUM AS ROWNO, T.* from k_task T where Flight_date between to_date('20060501', 'yyyymmdd') and to_date('20060731', 'yyyymmdd') AND ROWNUM <= 20) TABLE_ALIAS
WHERE TABLE_ALIAS.ROWNO >= 10; --2:有ORDER BY排序的写法。(效率最高)
--(经过测试,此方法随着查询范围的扩大,速度也会越来越慢哦!) SELECT * FROM (SELECT TT.*, ROWNUM AS ROWNO FROM (Select t.* from k_task T where flight_date between to_date('20060501', 'yyyymmdd') and to_date('20060531', 'yyyymmdd') ORDER BY FACT_UP_TIME, flight_no) TT WHERE ROWNUM <= 20) TABLE_ALIAS
where TABLE_ALIAS.rowno >= 10;--3:无ORDER BY排序的写法。(建议使用方法1代替)
--(此方法随着查询数据量的扩张,速度会越来越慢哦!)
--4:有ORDER BY排序的写法.(建议使用方法2代替)SELECT * FROM (Select ROWNUM AS ROWNO, T.* from k_task T where Flight_date between to_date('20060501', 'yyyymmdd') and to_date('20060731', 'yyyymmdd')) TABLE_ALIAS
WHERE TABLE_ALIAS.ROWNO <= 20 AND TABLE_ALIAS.ROWNO >= 10;
--TABLE_ALIAS.ROWNO between 10 and 100; --(此方法随着查询范围的扩大,速度会越来越慢哦!) SELECT * FROM (SELECT TT.*, ROWNUM AS ROWNO FROM (Select * from k_task T where flight_date between to_date('20060501', 'yyyymmdd') and to_date('20060531', 'yyyymmdd') ORDER BY FACT_UP_TIME, flight_no) TT) TABLE_ALIAS
where TABLE_ALIAS.rowno BETWEEN 10 AND 20; --5另类语法。(有ORDER BY写法)
--(语法风格与传统的SQL语法不同,不方便阅读与理解,为规范与统一标准,不推荐使用。) With partdata as( SELECT ROWNUM AS ROWNO, TT.* FROM (Select * from k_task T where flight_date between to_date('20060501', 'yyyymmdd') and to_date('20060531', 'yyyymmdd') ORDER BY FACT_UP_TIME, flight_no) TT WHERE ROWNUM <= 20) Select * from partdata where rowno >= 10; --6另类语法 。(无ORDER BY写法) With partdata as( Select ROWNUM AS ROWNO, T.* From K_task T where Flight_date between to_date('20060501', 'yyyymmdd') and To_date('20060531', 'yyyymmdd') AND ROWNUM <= 20) Select * from partdata where Rowno >= 10;
转载于:https://www.cnblogs.com/myhappylife/p/4535298.html
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 ...
最新文章
- cannot be registered to your development team. Change your bundle identifier to a unique string to t
- 算法----计算机程序设计之魂
- JVM 调优实战--常用命令参数及PS收集器的GC日志格式
- 基于QoE的实时视频编码优化:低功耗,低延时,高质量
- 上市开放式基金(LOF)
- JAVA复习(date)
- CMake 使用笔记
- php 怎么循环数组取有值的,php怎么循环数组取有值的-PHP问题
- PyTorch入门(一)--PyTorch基础
- 【2017】听懂你能看懂的句子
- SQL进阶:数据中间表,多表取身份证号-整理-匹配多表-合并整理
- Matlab仿真两种方法求圆周率π
- 【波束形成】MMSE波束形成,自适应MMSE波束形成以及自适应MBER波束形成
- eclipse代码补全、代码提示及防空格自动补全
- Java控制excel,word文档只读模式
- ★Kali信息收集~ 5.The Harvester:邮箱挖掘器
- 使用网络调试助手通过MQTT协议接入到华为云物联网平台
- 华为手机计算机怎么语音算术,只动口不动手!华为手机这个自带功能绝了,录音秒变文字!...
- 裁剪TIF图像,代码简单,易懂(Arcpy)
- Android设备获取mp3中的专辑封面信息
热门文章
- 改完计算机名自动重启 vbs,ghost后自动修改IP和计算机名的VBS脚本
- windows安装node.js和cnpm
- linux系统MongoDB4.0安装,密码设置,常用命令,集成springmvc
- Json文件转Map(三)之获取嵌套Map值
- 4.3定时器框架(Timer Framework)
- Struts2校验器(二)之注解
- 【渝粤教育】电大中专学前儿童健康教育 (7)作业 题库
- 【渝粤题库】陕西师范大学300009 考古学概论
- unity 动画 音频播放
- 【转】某女生编的c语言程序