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

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

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

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

SELECT T.* FROM
(SELECT ROWNUM AS RN,表名.* FROM 表名) T
WHERE RN BETWEEN (页数-1)*记录数+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:

原文地址:https://www.cnblogs.com/guipeng/p/11968434.html

时间: 2024-08-27 11:25:24

Oracle实现分页,每页有多少条记录数的相关文章

dedecms如何修改共0页/0条记录为英文版?

近日,在测试一个网站功能的时候,发现在搜索结果的下面为中文的“共0页/0条记录”,但客户的网站为英文版,所以我们需要将搜索的结果信息也要显示为英文,好了,我们开始动手修改dedecms的文件,以达到我们需要的效果吧! “共0页/0条记录”我们需要修改include/datalistcp.class.php文件,但是请注意修改了这个文件之后其它很多地方的分页内容都将是显示英文的. 找到文件大概在第30行: $lang_pre_page = '上页';    $lang_next_page = '下

oracle Insert 一次插入多条记录

oracle Insert 一次插入多条记录有两种方法: 1)Insert All Into table_name values ... insert all into table_name values('111','122') into table_name values('222','222') select 1 from dual; 2)Insert Into table_name select from insert into table1_name select t1.column_

使用bootstrap table时不能显示筛选列和分页每页显示的行数

使用bootstrap table时不能显示筛选列和分页每页显示的行数 后来在同事的帮助下,才发现没有引用bootstrap的js文件 <script src="/Scripts/bootstrap/js/bootstrap.js"></script> 这个引用了就可以了

Oracle:查询各组最新的一条记录

oracle中怎么查询各组中最新的一条记录呢?比如说现在有一个表中几条数据如下: 有两种写法:写法一:over partition by 分析函数 SELECT * FROM (select ID_,COMPANY_NAME,USAGE_RATE,DETECTION_RATE,ACCEPTABILITY_RATE,CREATE_TIME,MAX(CREATE_TIME) over(partition by COMPANY_NAME) as "atime" from SPEC_RATE_

使用存储过程查询并按每页10条记录分页显示图书借阅纪录

create procedure sp_pageing_abc @cur_page_num int, -- 当前页码 @page_size int -- 页码大小 传值时,这里填10 as begin select top @page_size * from abc where id<=(select isnull(min(id),0) from ( select top(@page_size*(1-1)) id from abc where is_borrow=1 order by id de

ORACLE每组只保留一条记录

删除同一组内其他记录 DELETE from memactivities a where exists(select 1 FROM (select Uuid,ci_no,lst_upd_ts,ROW_NUMBER() OVER(PARTITION BY Uuid order by ci_no) rn from ics.memactivities where uuid is not null)b where a.Uuid=b.Uuid AND a.lst_upd_ts=b.lst_upd_ts a

Oracle查询数据库中所有表的记录数

首先建立一个计算函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>create or

一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数

select id, Count(*) from tb group by id having count(*)>1 select * from(select count(ID) as count from table group by ID)T where T.count>1

Oracle查询前10条记录及分页查询(第5条到第10记录)

如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识,希望你在浏览完以下的文章会以下就是正文的详细内容的介绍. 在Oracle怎样查询表中的top10条记录呢? select *   from test   where rownum <=10   下面是关于rownum的介绍 Rownum和row_number() over()的使用 ROWNUM是Oracle从8开始提供的一个伪列,是把SQL出来的结果进行编