博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用sql 分页语句(Oracle)
阅读量:6644 次
发布时间:2019-06-25

本文共 1885 字,大约阅读时间需要 6 分钟。

常用的Oracle查询语句

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

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

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

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

    

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

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

 

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/gyjjyg/p/6834550.html

你可能感兴趣的文章
使用Webbrowser的一点心得体会
查看>>
(筆記) 如何在Linux上使用Verilog PLI? (SOC) (Verilog PLI) (NC-Verilog) (Linux)
查看>>
五个故事说穿了很多人
查看>>
OpenGL3D图形绘制
查看>>
3D成像法:抖动
查看>>
Azure China (13) Azure China CDN经验总结
查看>>
用dynamic增强C#泛型表达力
查看>>
Windows Phone 7.1 Mango ROM 安装指南
查看>>
[转] 百万级数据查询优化
查看>>
POJ 3294 Life Forms (后缀数组)
查看>>
POJ 3228 Gold Transportation (二分+最大流) (Dinic + 二分 或 EK)
查看>>
Entity Framework ObjectContext IUnitOfWork
查看>>
C#自定义Attribute略谈
查看>>
编译原理词法分析
查看>>
Spring之AOP面向切片
查看>>
空间聚类(等回来之后完成)
查看>>
[紧急求助]如何用程序实现外部提交?针对用asp实现的文件上传程序...内网程序...
查看>>
ExtJS2.0实用简明教程 - Fit布局
查看>>
myCxGrid
查看>>
Eclipse安装失败“eclipse failed to create the java virtual machine”解决办法
查看>>