169it科技资讯
169it -->


当前位置:  数据库>oracle

Oracle实现分页查询的SQL语法汇总

    来源: 互联网  发布时间:2014-10-04

本文实例汇总了Oracle实现分页查询的SQL语法,整理给大家供大家参考之用,详情如下:

1.无ORDER BY排序的写法。(效率最高)

经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!

sql语句如下:

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排序的写法。(效率最高)

经过测试,此方法随着查询范围的扩大,速度也会越来越慢!

sql语句如下:

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代替)

此方法随着查询数据量的扩张,速度会越来越慢!

sql语句如下:

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;

4.有ORDER BY排序的写法.(建议使用方法2代替)

此方法随着查询范围的扩大,速度也会越来越慢!

sql语句如下:

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语法不同,不方便阅读与理解,为规范与统一标准,不推荐使用。此处贴出代码供大家参考之用。

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; 

相信本文所述代码能够对大家有一定的参考借鉴价值。


    
相关技术文章:
    ▪教你怎样用Oracle方便地查看报警日志错误

     在网上查了几天的资料,尝试综合清除告警日志内容及建外部表的方式来解决这一问题。 一:备份并清除告警日志内容 将每天的告警日志备份好,然后进行清除。 1:备份报警日志 在$ORACLE_HOME/SID/bdump/   目录下, 按日期备份alert_ORACLE_你的实例名.LOG这个文件,如:alert_ORACLE_orcl_201408111639_bak.LOG。 2:清除日志内容 打开报警日志文件,用true > 文件名 可清除掉里面的内容 具体示例: 假如,我现在第一次进行该设置,我先把现有的告警日志进行备份,如: --备份文件名称:今天16点24分前的告警日志信息 ......


    ▪DBA 在Linux下安装Oracle Database11g数据库图文教程

     Oracle11g是比较通用的版本,尝试安装Oracle 12c可惜失败了,没有办法 以下是整理的资料 1. 系在安装文件连接  http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip?AuthParam=1407205871_4259949f8bacf912168631692563a693  http://download.oracle.com/otn/linux/oracle......


    ▪Oracle过程与函数的区别分析

     Oracle过程和函数相信大家都比较了解,下面就为您详细介绍Oracle过程和函数二者之间的区别,希望可以让您对Oracle过程和函数有更深的认识。 Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式。Oracle过程是作为一个独立执行语句调用的: pay_involume(invoice_nbr,30,due_date); 函数以合法的表达式的方式调用: ......


 
最新技术文章:
    ▪Oracle 系统变量函数介绍

     Oracle函数多种多样,系统变量函数就是其中之一,下面就为您介绍三种最常见的系统变量函数,希望对您学习Oracle能有所帮助。 Oracle系统变量函数: (1)SYSDATE 该函数返回当前的日期和时间。返回的是Oracle服务器的当前日期和时间。 select sysdate from dual; insert into purchase values (‘Small Widget','SH',sysdate, 10); insert into purchase values (‘Meduem Wodget','SH',sysdate-15, 15); 查看最近30天的所有销售记录,使用如下命令: select * from purchase where purchase_date between (sysdate-30) and sysdate; (2)USER ......


    ▪oracle trunc()函数的使用方法

     oracle trunc()函数是最常用的函数之一,下面就为您介绍oracle trunc()函数的用法,供您参考,希望可以让您对oracle trunc()函数有更深的认识。 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值。 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date一个日期值 fmt        日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去 下面是该函数的使用情况: TRUNC(TO_DATE('24-Nov-1999 08:00 pm','dd-mon-yyyy hh:mi am'))         ='24-Nov-1999 12:00:00 am' TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'......


    ▪ORACLE学习笔记-新建用户及建表篇

     一、用户相关SQL语句 /*新建用户*/ create user SA identified by 2013; 说明:SA用户名,2013密码 /*授权connect,resource给用户sa*/ grant connect,resource to sa; 说明:CONNECT角色: --是授予最终用户的典型权利,最基本的 。         ESOURCE 角色: --是授予开发人员的 /*查询所有的用户*/ select * from all_users; /*将表STU查询权限授予SA*/ GRANT SELECT ON STU TO SA /*将表STU添加......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号