-
2022-03-05 16:10:06
Oracle 分页
oracle分页的基本属性
总页码:maxPage 每页最多展示的条数/页大小:pageSize 当前页码:pageIndex 默认从第一页开始浏览 每页开始的条数:start 每页结束的条数:end
oracle分页的公式
总页码:maxPage = 总数据量 % 每页展示的数据(页大小) == 0 ? 总数据量 / 页大小 : 总数据量 / 页大小 + 1 每页开始的条数:start = (pageIndex-1) * pageSize + 1 每页结束的条数:end = pageIndex * pageSize
oracle 需要使用rownum来实现分页(oracle分页的sql语句)
select * from (select a.*,rownum myid from tb_news a) b where myid between 1 and 5;
带模糊查询分页的sql语句
需要把模糊查询的关键字当作参数转递进去 select * from (select a.*,rownum myid from tb_news a where a.title like '%"+str+"%') b where myid between ? and ?
更多相关内容 -
Oracle分页查询的实例详解
2020-12-15 22:19:44Oracle分页查询的实例详解 1.Oracle分页查询: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM tab) A WHERE ROWNUM <= 40 ) WHERE RN >= 21; 这个分页比下面的执行时间少,效率高。 2. ... -
Oracle分页查询性能优化代码详解
2021-01-19 23:13:51对于数据库中表的数据的 Web 显示,如果没有展示顺序的需要,而且因为满足条件的记录如此之多,就不得不对数据进行分页处理。常常用户并不是对所有数据都感兴趣的,或者大部分情况下,他们只看前几页。 通常有以下... -
oracle分页查询sql
2019-01-15 23:03:22oracle分页查询语句sql -
oracle分页
2018-01-17 14:45:19oracle分页、分页的存储过程、循环、游标的使用、排序 -
Oracle分页
2016-10-21 21:10:13Oracle+servlet实现分页技术,使用到AJax、Json、jQuery -
PHP实现的oracle分页函数实例
2020-10-22 22:14:12主要介绍了PHP实现的oracle分页函数,结合实例形式分析了PHP针对oracle数据库使用rownum代替MySQL中limit实现的分页操作相关技巧,需要的朋友可以参考下 -
简单实例解释Oracle分页查询
2021-01-21 14:59:12什么是分页查询 分页查询就是把query到的结果集按页显示。比如一个结果集有1W行,每页按100条数据库。而你获取了第2页的结果集。...使用Oracle的EMP表 select * from ( select rownum rn, e.* from ( select * from -
oracle 分页 很棒的sql语句
2020-09-11 09:08:14oracle 分页 很棒的实现方法,大家可以分析下。 -
oracle 分页语句
2012-11-28 22:57:55select * from (select a.*,rownum rn from (select * from tablename) a where rownum) where rn>2 -
oracle分页代码
2017-12-14 10:09:32oracle分页使用,写好的工具类可直接调用,,,,,,,, -
Oracle分页语句
2021-05-08 18:35:24Oracle分页查询语句的写法(转) Oracle分页查询语句的写法(转) 分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用...select * from (select A.*,rownum rd from (select * from [tablename] where [condition] order by [condition] ) A where rownum<=[endpage*pagesize]) where rd>=[startpage*pagesize];
1.select * from [tablename] where [condition] order by [condition]
按条件对数据表进行筛选排序,作为分页的基本数据
2.select A.*,rownum rd from (select * from [tablename] where [condition] order by [condition] ) A where rownum<=[endpage*pagesize]
使用rownum选择小于结尾页的数据,必须对rownum采用别名
3.select * from (select A.*,rownum rd from (select * from [tablename] where [condition] order by [condition] ) A where rownum<=[endpage*pagesize]) where rd>=[startpage*pagesize]
在2中得到的表中选择大于开始页的数据
Sqlserver2008和Oracle分页语句
SqlServer 分页语句 select StuID ,StuNo,StuName,Age,Sex, ClassName ClassName from (select *, row_number() ...
mybatis中Oracle分页语句的写法
最近一段时间使用oracle数据库查询分页, 用的是springboot. Oracle数据库中没有像mysql中limit的写法, 只能换其他方式写. 考虑到oracle中的ROWNUM变量, 使用 ...
简单的oracle分页语句
SELECT * FROM ( SELECT rownum rn,te.* FROM (SELECT * FROM tb_enterprise) te WHERE rownum <= 10) ...
Oracle 分页语句
** 写法1 :采用 ROWNUM的伪列: --查询10到20之间的数据 -- SELECT * FORM ( -- SELECT * , ROWNUM rn FROM TABLE_NAME -- W ...
说说oracle分页的sql语句
说说oracle分页的sql语句,分排序和不排序两种. 当结果集不需要进行排序时,每页显示条数为:rowPerPage,当前页数为:currentPage. 1. 相对来说,这种查询速度会快一些,因为 ...
Oracle分页查询语句的写法(转)
Oracle分页查询语句的写法(转) 分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的 ...
Oracle分页查询语句的写法
分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. AD:2013云计算架构师峰会精彩课程曝光 Oracle分页查询语句使我们最常用 ...
Oracle 分页原理
oracle rownum 及分页处理的使用方法 在实际应用中我们经常碰到这样的问题,比如一张表比较大,我们只要其中的查看其中的前几条数据,或者对分页处理数据.在这些情况下我们都需要用到rownum. ...
使用rownum对oracle分页
以Student表为例进行分页 建表及插入 -- 有表结构如下 create table STUDENT ( sno INTEGER, sname ), sage INTEGER ); -- 插入数据 ...
随机推荐
C#语句2——循环语句(for循环与for循环嵌套)
循环:反复执行某段代码. 循环四要素:初始条件,循环条件,循环体,状态改变. for(初始条件;循环条件;状态改变) { 循环体 } break ——中断循环,跳出整个循环 continue——停止本 ...
Mybatis generator的使用
<?xml version="1.0" encoding="UTF-8"?> ..
25M时钟的梁祝演奏
module liangzhu(clk_50M,rst,speaker); input clk_50M,rst; output speaker; reg speaker; //分频计数器paramet ...
发一份shiro标准配置,特此记录
主要还是整合了本地ehcache,集群session管理过段时间放出 <?xml version="1.0" encoding="UTF-8"?> ...
oracle中找出某个字段中有非数字型的记录
工作中遇到一个大表记录中有非法非数字字符,不想用正则语法去做, 用一条SQL语句查出来的方法如下: select * from table where translate(col,'*01234567 ...
CSS学习------之简单图片切换
最近一直在重温纯CSS,学习的时候真的才发现,css真的博大精深啊! 所以趁着学习的劲头,谢了个最简单的CSS图片切换! 先整理下思路: 首先我希望图片居中间,两边有个切换按钮,点击按钮的时候,可以实 ...
2.5.4 使用popupWindow
【动态规划】Vijos P1104 采药(NOIP2005普及组第三题)
题目链接: https://vijos.org/p/1104 题目大意: T时间,n个物品,每个耗时ti,可获得收益ci,求最大收益. 题目思路: [动态规划] 01背包裸题.一维二维都过了,放个一维 ...
【SSH系列】初识spring+入门demo
学习过了hibernate,也就是冬天,经过一个冬天的冬眠,当春风吹绿大地,万物复苏,我们迎来了spring,在前面的一系列博文中,小编介绍hibernate的相关知识,接下来的博文中,小编将继续介绍 ...
Windows 访问 CentOS 7 共享文件夹 Samba 配置
Windows 使用用户名.密码访问 CentOS 7 共享文件夹 执行命令,查看 Windows 工作组:net config workstation 执行命令,安装 Samba:yum insta ...
-
java实现oracle分页策略
2013-09-30 16:36:22java实现oracle分页策略完整版,可当做参考类使用,有详细注释,适合初学者。 -
Oracle分页查询
2021-08-25 16:04:59在做分段查询的时候,在mysql中可以使用limit a,b 这种方式进行分段查询,同样的分页查询也是类似的道理,但是在ORACL中就不太一样了,如果在ORACLE中使用limit 就会报错命令语句未正确结束,造成这个问题的原因就是...oracle 分页
oracle在11c中所使用的分页是通过rownum或者rowid进行实现,但是这样的方式实现起来相对麻烦,所以在oracle更新到12c时就引入了新的分页方式 offset 0 rows fetch next 10 rows only
11C
rownum
在做分段查询的时候,在mysql中可以使用
limit a,b
这种方式进行分段查询,同样的分页查询也是类似的道理,但是在ORACL中就不太一样了,如果在ORACLE中使用limit
就会报错命令语句未正确结束,造成这个问题的原因就是在ORACLE中不存在limit
,那么同样的要想实现limit分段查询的
可以使用ORACLE中的关键字rownum用法
下面就用一个实际的例子举例说明
- 例如我现在要查询一些符合条件的数据,那么我使用了如下的SQL进行查询,查询出了总计103条数据
- 但是现在需求改变,不查总的数据,而是每次只查询指定数量的数据,这时候或许就会有人想既然可以使用rownum进行类似于limit这样的查询那就使用
rownum a,b
这种方式是不可取的,因为语法就不对。 - 那百度后发现rownum可以使用
>或<
进行取范围值,那就直接在条件后面加上rownum >=0 and rownum <=10
如果这样查确实能查出前10条数据,那如果换成rownum >=10 and rownum <=20
这样就无法查询出第10条到第20条
而是为空集
实现
所以想使用rownum实现分段查询那么就要理解rownum的原理并使用到子查询,其实rownum就是行号。例如上面我使用该条SQL已经能查询出总的数据量是103条,那么就可以在这个SQL里面加入rownum这个字段并且取一个别名,并且
将这条SQL作为一个查询的子查询
- 如下所示,在以上查询的SQL外面套一个查询,也就是将前面查询出103条数据的SQL作为一个子查询
select * from ( `查询出了103条数据的SQL语句` ) t where t.rn between 101 and 200
并且在查询出为103条数据的查询字段中加入
rownum rn
其中rn是rownum的别名,上面的t
是子查询的别名,而101,200就是查询的范围
- 总的SQL如下
通过以上的这种方式就实现了ORACLE中类似于
limit的分段查询
,同样的如果考虑到效率问题可以将select * 换成select 字段,而这些字段就是子查询中查询的字段值。
思路
- 写好总的查询SQL,就是查询所有数据的
- 在该条SQL里面加入rownnum字段,并且给该条子查询SQL取别名
- 将该条SQL做为子查询嵌套在内侧
- 使用
子查询别名.rownum别名
的方式给定一个范围
mybatis-plus中分页实现
其实在mybatis-plus中也时通过解析拼接sql的方式实现了分页的效果,如下:
就是使用了ROWNUM,ROW_ID实现,而这两个时oracle中自带的关键子,不存在于查询的表中,所以能较好的实现分页效果。
// oracle实现 public DialectModel buildPaginationSql(String originalSql, long offset, long limit) { limit = offset >= 1L ? offset + limit : limit; String sql = "SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( " + originalSql + " ) TMP WHERE ROWNUM <=" + "?" + ") WHERE ROW_ID > " + "?"; return (new DialectModel(sql, limit, offset)).setConsumerChain(); }
12C
通过上面的语句可以看到,在11c中主要是使用了
ROWNUM,ROW_ID
, 如果初次接触处理不当可能就会在查询结果中带有行号ROWNUM,当然如果参照着mybatis-plus中分页实现方式就能较好的避免这个问题。但是通过观察却能发现一个问题就是,上面的SQL看起来有些复杂,所以在oracle 12c的版本中引入了一个新的分页方式offset " + x + " rows fetch next " + y + " rows only"
//分页SQL处理 String strSql = sql + " offset " + x + " rows fetch next " + y + " rows only";
其中x表是从第几条取值,y表示每次取多少条。
-
Oracle实现分页查询的SQL语法汇总
2020-12-15 20:34:47本文实例汇总了Oracle实现分页查询的SQL语法,整理给大家供大家参考之用,详情如下: 1.无ORDER BY排序的写法。(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响... -
如何解决Oracle分页查询中排序与效率问题
2020-03-04 03:06:20本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题。 -
oracle分页优化
2021-11-05 11:52:33百度上的oracle分页都需要嵌套两层,一层查询中带出rownum,最外层去掉rownum。 而百度上针对的优化也是在两层的基础上优化,相比以前是提高了效率。但是只用一整效率会更高。下面针对代码优化演示。 代码...补充说明
对分页进行优化只能是第二种,第三种优化不能翻页。只能最小数是1
业务背景
公司报表查询,当时在测试库里面运行的时候,速度是很快的,在生产上运行速度很慢,当初以为生产上数据量太大的原因。后来发现是分页导致的查询速度慢。
优化介绍
百度上的oracle分页都需要嵌套两层,一层查询中带出rownum,最外层去掉rownum。
而百度上针对的优化也是在两层的基础上优化,相比以前是提高了效率。但是只用一整效率会更高。下面针对代码优化演示。代码演示
正常的oracle分页查询
select id, name, sex, age, address, phone from ( select id, name, sex, age, address, phone, rownum num from student ) b where b.num >= 1 and b.num <= 10
百度上的优化
select id, name, sex, age, address, phone from ( select id, name, sex, age, address, phone, rownum num from student where rownum <= 10 ) b where b.num >= 1
第三种
这种优化不能分页,只能从1开始,select id, name, sex, age, address, phone, rownum num from student where rownum >= 1 and rownum <= 10
总结,根据上面的优化只是将范围缩小了一下而已,相当于两层循环,而第三种方法,相当于一层循环。
共同探讨学习技术创建技术氛围Day9884125 -
mybatis中oracle实现分页效果实例代码
2020-08-30 17:53:23实现分页的方式有很多,但常用的是通过SQL来显示分页。这篇文章主要介绍了mybatis中oracle实现分页效果实例代码,有兴趣的可以了解一下。 -
Mybatis实现Oracle 分页
2022-03-22 20:36:43Mybatis+Oracle 分页 1,使用mybatis的插件PageHelper (1)Mapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ... -
oracle分页存储过程 oracle存储过程实例
2020-12-16 03:00:14代码如下:import java.sql.CallableStatement;import java.sql.Connection;...public class TestPage { public TestPage() { } public static void main(String[] args) { String driver = “oracle.jdbc.driver -
关于Oracle分页查询
2021-05-08 06:11:25--MySql,分页--select * from biaoming where tiaojian limit num1(start),num2(size)--------Oracle分页,关键字rownum----select ename,rownum from emp;select ename,rownum from (select * from emp);----三层... -
Oracle如何实现分页查询 Oracle分页查询代码实例
2021-04-30 09:00:29本篇文章小编给大家分享一下Oracle分页查询代码实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。什么是分页查询分页查询就是把query到的结果集按页显示。比如一个结果集有1W行,每... -
oracle分页查询数据重复问题、分页排序陷阱
2021-05-02 04:55:07在oracle分页查询过程中,如果数据的物理位置发生了改变,就可能会引起分页数据重复的现象。 2.对于以上SQL脚本,优化器采用了“SORT (ORDER BY STOPKEY)”。“SORT (ORDER BY STOPKEY)”不需要对所有数据进行排序,... -
oracle分页查询sql语句,oracle分页查询sql语句详解
2021-05-06 01:17:19oracle分页查询sql语句,oracle分页查询sql语句详解,Oracle分页查询sql语句Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点,Oracle中分页使用rownum ,相对复杂一点。sql语句如下... -
oracle分页和mysql分页
2021-06-21 09:41:46mysql分页用limit select * from user where address = ‘唐山’ limit 10, 20 oracle分页用rownum 查询user表中前5条数据,注意不能使用等于号,不然查不出数据 select * from user where rownum <= 5