Oracle实现分页,每页有多少条记录数

分页一直都是关系数据库的热门,在数据量非常多的情况下,需要根据分页展示,每页展示多少条记录,以此减轻数据的压力;

1实现原理,根据rownum取记录数,根据公式(页数-1)*每页想要展示的记录数 AND 页数*记录数,其中页数是变量,记录数是常量,ROWNUM为过滤字段。

下面的SQL实现了按页数去查记录,以及规定每页有多少条记录数;

SELECT T.* FROM
(SELECT ROWNUM AS RN,表名.* FROM 表名) T
WHERE RN BETWEEN (页数-1)*记录数 AND 页数*记录数;

例子:查询表DBA_USERS,表数据量一共有36条,需要分页,按每页12条展示,SQL如下:

SELECT &A,
RN,
USERNAME,
USER_ID,
DEFAULT_TABLESPACE
FROM (SELECT ROWNUM AS RN,
USERNAME,
USER_ID,
DEFAULT_TABLESPACE
FROM DBA_USERS)
WHERE RN BETWEEN (&A - 1) * 12 AND (&A) * 12;

当&A=1;

 

 当&A=2:

 

posted on 2019-12-01 23:48  Leader.Z  阅读(2112)  评论(0编辑  收藏  举报