当前位置:首页 > 个人杂谈 > 正文内容

分享oracle高效分页查询语句

作者: 葛屹肃 | 日期: 2020-12-25 | 分类: 个人杂谈

前端数据查询,需要分页功能才会美观与操作方便,最近有一个项目是使用oracle数据库的,而且前端需要分页的功能,于是,近几天在网上搜索关于oracle分页的资料,对于oracle分页也有深入了解,今天小编整理好oracle高效分页查询语句分享给大家。

oracle高效分页查询语句

根据资料所得,oracle分页查询语句无非2种:

第一种:效率最高

SELECT A.*
FROM (SELECT BARCODE_TEST.*, ROWNUM AS ROWNO
FROM BARCODE_TEST
WHERE ROWNUM <= 10
ORDER BY ID) A
WHERE A.ROWNO > 0

第二种:效率低但很常用

SELECT A.*
FROM (SELECT BARCODE_TEST.*, ROWNUM AS ROWNO FROM BARCODE_TEST ORDER BY ID) A
WHERE A.ROWNO > 0 AND A.ROWNO <= 10

使用方法很简单,只需要传2个参数值,一个是当前页数,一个每页的记录数,传参以后,就可以通过参数计算出当前页面的最大/最小ID而进行查询。

最大ID = 页数 * 每页记录数
最小ID = 页数 * 每页记录数 – 每页记录数

如:

第一页最大ID:1 * 10 = 10
第一页最小ID:1 * 10 – 10 = 0

第二页最大ID:2 * 10 = 20
第二页最小ID:2 * 10 – 10 = 10

第三页最大ID:3 * 10 = 30
第三页最小ID:3 * 10 – 10 = 20

将传参放在查询语句,第一页的传参就变成如下:

SELECT A.*
FROM (SELECT BARCODE_TEST.*, ROWNUM AS ROWNO
FROM BARCODE_TEST
WHERE ROWNUM <= (1 * 10)
ORDER BY ID) A
WHERE A.ROWNO > (1 * 10 – 10)

得出查询语句与示例一致,这样就可实现分页查询功能。

好了,以上是小编整理的oracle实现分页查询的语句,经过测试可以实现分功能,如有疑问,欢迎给我们留言。

版权声明:本文由〖葛屹肃〗发布,转载请注明出处!
文章链接:https://www.geyisu.com/1708.html

  • 评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?

◎欢迎大家参与讨论