当前位置:   article > 正文

Oracle分页三种有效方法

oracle分页

三种分页方法为:

1、ROWNUM

ROWNUM的使用场景:

场景:查询主键不重复的所有数据

  1. SELECT *
  2. FROM (
  3. SELECT TQ.*,ROWNUM R FROM T_QUERY TQ
  4. WHERE TQ.PHONETYPE = 'IPHONE'
  5. )
  6. WHERE R >= 1
  7. AND R <=10

个人理解:

首先是在原表的数据中加入临时字段ROWNUM,相当于按数据顺序排上编号

样例
IDROWNUM
202302021
202205062
202201013

 where判断条件中的1和10大家可以用占位符传入自己想要展示的数据的区间。

使用:用于where条件中

优点:上手快,不复杂

缺点:性能较低,数据量大的话会导致前端页面接受资源过多页面崩溃

2、OFFSET和FETCH

OFFSET和FETCH的使用场景:

场景:更适用于查询大量数据且有重复的数据,当然也可以查其它类型的数据

SELECT * FROM T_QUERY ORDER BY TQ_COLUMN OFFSET 0 ROWS FETCH NEXT 10 ROMS ONLY;

个人理解:

该方法适用于直接查询某个范围后多少数据

OFFSET 0 代表从0后面的一位开始计算也就是1 ,sql的0 和 10取得的结果就是1~10 

使用:用于select条件中

优点:上手快,容易掌握

缺点:在Oracle 12 及以上才可以用

3、ROW_NUMBER()OVER()

ROW_NUMBER()OVER()使用场景:

场景:各种不同的分页场景

  1. SELECT * FROM
  2. (
  3. SELECT TQ.*,ROW_NUMBER() OVER (ORDER BY TQ_COLUMN) R FROM T_QUERY TQ
  4. )
  5. WHERE R BETWEEN 1 AND 10

个人理解:

该方法适用于直接查询某个范围区间的数据

对TQ_QUERY表的 TQ_COLUMN列进行排序,取出1~10的数据返回

使用:用于select条件中

优点:更加灵活

缺点:语法复杂,不利于理解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/475396
推荐阅读
相关标签
  

闽ICP备14008679号