一个非常好的ORACLE的分页SQL语句

select * from (select my_table.*, rownum as my_rownum from ( select yhbh, yhmc from yysf_tb_yonghxx order by yhbh) my_table where rownum <20 ) where my_rownum>=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最差

oracle如何返回指定行数之间的查询结果

如何返回指定行数之间的查询结果,以实现web记录分页,在Oracle中有许多的方法,这里仅仅列出了4种,希望能对大家有所帮助,大家可以根据不同需要选择下面的script

1)select ... where rownum < 50 minus select ... where rownum < 30

这个方法因为用到了minus操作符,所以速度会受影响。

2)

SELECT results.* FROM

( SELECT t2.*, rownum rownumber FROM

( SELECT t.* FROM mv_table t WHERE ORDER BY col1) t2) results

WHERE results.rownumber BETWEEN 30 and 50 ORDER BY col1

这个方法是从一个论坛上看到的,没有亲自测试过

3)

定义cursor x, 2.fetch x a,b,c; loop ...... end loop;

其中用两个循环变量和一个FLAG变量,分别表示,当前的记录数,属于第几页的, 及第一页面。

ps;

j:=to_number(kafyf);

i:=1;

open cx;

loop fetch cx into col1,col2,col3,col4,col5,col6;

if cx%NOTFOUND then exit; end if;

if i>=j then

htp.tableRowOpen;

htp.tableData(col1);

htp.tableData(col2);

htp.tableData(col4);

htp.tableData(col5);

htp.tableData(col6);

htp.tableData(col3);

htp.tableRowClose;

i:=i+1;

if i=j+10 then l:=1; exit; end if;

else i:=i+1;

end if;

end loop;

close x;

该方法是名叫‘淼’的网友写的script,他用到了Oracle web2kit中的OWA_UTIL package。

4)How can one page forward and backwards through a table?

Externalize ROWNUM by implementing queries like this:

SELECT ...

FROM (SELECT ROWNUM rnum, ... FROM ...)

WHERE rnum BETWEEN :low AND :high AND rownum

where :low and :high are dynamically generated values depending on which result page the user

is viewing. Typically, they are used to show "Next 15 matches", "Previous 15 matches" links at the

bottom of each page.

java oracle分页查询语句_ORACLE分页SQL语句相关推荐

  1. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)

    [一步是咫尺,一步即天涯] 到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层.但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的.本文,我们将从逻辑分页, ...

  2. oracle 带有变量的语句_Oracle 动态SQL语句(2)之含变量的WHERE语句与日期变量

    在 Oracle 动态SQL语句(1)中提到基本动态SQL语句书写,但在写动态SQL语句时特别要注意日期型变量和WHERE语句的编写. 如下代码: 1.注意在执行动态SQL语句时,execute im ...

  3. oracle 执行带参数的sql语句_Oracle动态SQL语句的简单执行

    在使用ODP.NET进行Oracle编程时,有时候SQL语句非常复杂,需要采用动态构造查询语句的情况,有两种方法可以构造动态的SQL语句,并执行返回结果集. 1.在数据访问层构造SQL语句 例如下面的 ...

  4. oracle数据库查询open_cursors值的sql语句,达梦数据库查询MAX_SESSION_STATEMENT值方法,MAX_SESSION_STATEMENT的最大值、上限是多少

    windows 下需要用 cmd 登录 oracle 数据库,用 show parameter open_cursors 来查询. 可以看到 open_cursors 的值为 2000. SQL> ...

  5. oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析

    oracle查看执行最慢与查询次数最多的sql语句 注:本文来源 于<oracle查看执行最慢与查询次数最多的sql语句> 前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率 ...

  6. 大数据分页查询 or 导出 慢sql治理

    大数据分页查询 or 导出 慢sql治理 背景 缺陷 要求 优化方案 适用场景 方案优点 方案缺点 时间拆分如处理分页查询问题 方案说明 使用说明 分页查询工具 时间拆分工具 背景 当前日增数据量将近 ...

  7. oracle一条sql运行时间很长,oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析...

    oracle查看执行最慢与查询次数最多的sql语句 前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻 ...

  8. oracle ash 脚本 查询,[20210112]ashtop查询特定表的SQL语句.txt

    [20210112]ashtop查询特定表的SQL语句.txt --//ashtop.sql是Tanel Poder大师写的查看  Display top ASH time 的脚本,它非常灵活. -- ...

  9. oracle查看执行过的语句,oracle 查询执行过的SQL语句

    MySQL开启日志记录查询/执行过的SQL语句 作为后端开发者,遇到数据库问题的时候应该通过分析SQL语句来跟进问题所在,该方法可以记录所有的查询/执行的SQL语句到日志文件. 方法有几种,但是个人觉 ...

  10. oracle+sql+按中文拼音排序,Oracle 中文字段进行排序的sql语句

    Oracle 中文字段进行排序的sql语句 1)按笔画排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_STR ...

最新文章

  1. CCS Font 知识整理总结
  2. tomcat向weblogic移植需要注意的问题
  3. jq画布插件_超炫HTML 5开发的jQuery进度条插件
  4. CentOS 7 : Docker私有仓库搭建和使用
  5. Flutter 项目开发指导 从基础入门到精通使用目录
  6. OpenCV3学习(4.1)——图像阈值操作(Threshold,AdaptiveThreshold)
  7. 林肯航海家使用android auto,汽车头条 - 林肯航海家/MKC瞄准了30万+的市场 它们的对手要慌了...
  8. 本地在线安装mysql_本地安装MySql服务
  9. [转载] Python-类变量,成员变量,静态变量,类方法,静态方法,实例方法,普通函数
  10. 基于3DGIS+BIM的智慧园区运维管理平台
  11. 在centos下安装使用busybox工具箱
  12. 阿里云短信服务的配置和使用
  13. 信号指示RSSI与显示格数关系
  14. 卡耐基:一个人的成功,只有15%是靠专业技术
  15. python信用卡识别_在python中验证信用卡号码
  16. apache虚拟服务器搭建,httpd搭建虚拟主机与Apache网站基础服务
  17. 剑御九州手游辅助升级工具 提升战力材料介绍
  18. 优秀的软件词典灵格斯
  19. 分享几张个人在使用的alienware的壁纸
  20. 谷歌紧急修复今年已遭利用的第9个0day

热门文章

  1. Android虎头金刀之RadioButton之神仙妖怪
  2. VMware 相关笔记
  3. Android 获取本机号码(收集)
  4. Vista系统内建的用户类型及权限
  5. 计算机知识和操作技能,《计算机基础知识与操作技能》毕文才 编_孔网
  6. list列表 tuple元组 (range操作) dict字典 set集合 及相关操作
  7. 用自己的电脑搭建服务器并让外网访问。
  8. 双网卡访问外网和学校内网
  9. Python 二进制加减
  10. 移动网络下的性能优化之省电篇