• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle实现分页查询的SQL语法汇总

    本文实例汇总了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 左连接(+)加号用法及常用语法之间的关系
    • Oracle存储过程循环语法实例分析
    • MySQL与Oracle的语法区别详细对比
    • Oracle存储过程基本语法介绍
    • SQLServer 2005 和Oracle 语法的一点差异小结
    • Oracle存储过程入门学习基本语法
    • oracle基础语法详解
    上一篇:ORACLE学习笔记-查询篇
    下一篇:教你怎样用Oracle方便地查看报警日志错误
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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