`

oracle 分页总结

阅读更多

分页的几种写法:
--1:无ORDER BY排序的写法。(效率最高)
--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!)
SELECT *
  FROM (
[真正的查询]    
//[]里面放我们需要写的查询语句
         AND ROWNUM <=  '每页条数'*‘第几页’
) TABLE_ALIAS
WHERE TABLE_ALIAS.ROWNO >= ‘每页条数’*(‘第几页’-1)+1;

例子:
SELECT ROWNO,MCOM_COUPON_ID,MCOM_COUPON_TITLE,DISCOUNT_RATE,POINTS,IS_BESTUNION_USER
  FROM (

select ROWNUM AS ROWNO,t.*,me.*  //这里我们需要的是两个表的数据所以,最上面的select 后面就需要给出实际的表所对应的字段
  from mcom_coupon t, MCOM_ENTERPRISES me
where (t.ent_addr like '%春熙路%' or t.mcom_coupon_title like '%春熙路%')
   and me.mcom_enterprises_sid = t.MCOM_ENTERPRISES_SID
  
   and ROWNUM <= '每页条数'*‘第几页’) TABLE_ALIAS
WHERE TABLE_ALIAS.ROWNO >= ‘每页条数’*(‘第几页’-1)+1;
//第1页,给的值就是1


--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;

例如:
SELECT    *    FROM
(
SELECT A. * , ROWNUM RN
FROM (

Select ROWNUM AS ROWNO, T.*
           from mcom_coupon T
          where T.mcom_coupon_indu_id='27' ) A
        
)
WHERE RN BETWEEN ‘每页几条’*(‘第几页’-1)+1 AND ‘每页几条’*‘第几页’


--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;
  

 

分享到:
评论

相关推荐

    mysql分页,oracle分页,sql server三种数据库实现分页

    mysql,oracle,sql server分页总结与比较

    oracle分页查询

    oracle分页查询总结,网上找的,在此分享

    oracle mysql SQL server分页

    这里只是总结了MySQL,SQL Server,Oracle分页语句。供大家参考

    三大数据库分页总结

    oracle mysql sqlserver 三大数据库在实际开发中的最常用分页书写!

    oracle相关总结

    oracle的相关技术,重点的注意事项,sql语句以及oracle分页的相关用法。

    Oracle数据分页讨论即实现方式

    此文档,充分讲解了orcale分页原理,即不同方式的优缺点,特别适合初学者。总结的相当透彻!

    Oracle查询总结与优化

    ----执行分页查询 v_heiRownum := p_PageNo * p_PageSize; v_lowRownum := v_heiRownum - p_PageSize + 1; v_sql := 'SELECT * FROM ( SELECT A.*, rownum rn FROM ('|| p_SqlSelect ||') A WHERE rownum ...

    oracle使用管理笔记(一些经验的总结)

    10.oracle分页查询 21 (1)删除重复记录 22 11.oracle合并查询 24 12.oracle连接 25 13.oracle函数 26 (1)字符函数 26 (2)数学函数 26 (3)日期函数 27 (4)给表取别名的时候,不能加as;但是给列取别名,是可以加as 27...

    Oracle,mysql,sqlserver等各种数据库的分页方法

    此文件里面包含一些常用的数据库分页方法,这是我在学习的过程中和查阅一些资料总结出来的,希望能够帮助到你,欢迎下载哦。

    几种数据库常见分页sql

    几种数据库常见分页sql 我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库...根据自己使用过的内容,把常见数据库SQL Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下:

    详解SQLServer和Oracle的分页查询

    现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了。 1.分页算法  最开始我在网上查找资料的时候,看到很多分页内容,感觉很多很乱。其实不是这样。网上那些资料大同小异。问题出在了我自己这里。...

    jdbc 分页 sql语句

    sql语句分页查询 自己总结下来的 希望能给大家一点帮助!

    Oracle总结

    Oracle 的函数的使用,分页,基本语法,还有角色,

    三大数据库分页的实现

    我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库的交互,如果数据库中...根据自己使用过的内容,把常见数据库Sql Server,Oracle和My sql的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下:

    [Oracle.DBA手记_数据库诊断案例与性能优化实践].《Oracle.DBA手记》编委会.扫描版

    本书由多位工作在数据库维护一线的工程师合著而成,包含了精心挑选的数据库诊断案例与性能优化实践经验,内容涉及oracle典型错误的分析和诊断,各种sql优化方法(包括调整索引,处理表碎片,优化分页查询,改善执行...

    Oracle DBA 手记 数据库诊断案例与性能优化实践 3/3

    本书由多位工作在数据库维护一线的工程师合著而成,包含了精心挑选的数据库诊断案例与性能优化实践经验,内容涉及Oracle典型错误的分析和诊断,各种SQL优化方法(包括调整索引,处理表碎片,优化分页查询,改善执行...

    Oracle_PLSQL_存储过程

    Oracle存储过程基础知识; Oracle存储过程的基本语法; 用Java调用Oracle存储过程总结; 在存储过程中做简单动态查询; Oracle存储过程调用Java方法; Oracle高效分页存储过程实例

    Oracle.DBA手记1--数据库诊断案例与性能优化实践

    本书由多位工作在数据库维护一线的工程师合著而成,包含了精心挑选的数据库诊断案例与性能优化实践经验,内容涉及oracle典型错误的分析和诊断,各种sql优化方法(包括调整索引,处理表碎片,优化分页查询,改善执行...

    数据库中的分页

    以后都不怕解决分页问题了,今日小记一篇总结了在oracle,sqlserver中实现分页功能,并附带小程序成功实现了分页功能

Global site tag (gtag.js) - Google Analytics