(1)MySql的Limit m,n语句

Limit后的两个参数中,参数m是起始下标,它从0开始;参数n是返回的记录数。我们需要分页的话指定这两个值即可。

比如:查询10行记录,起始行从3开始

SELECT * FROM emp LIMIT 3, 10;

(2)Oracle数据库的分页需要用到rownum

rownum伪列

rownum伪列是Oracle首先进行查询获取到结果集之后在加上去的一个伪列,这个伪列对符合条件的结果添加一个从1开始的序列号,先看一个例子:

select rownum,e.* from emp e; 

查询前10条记录,我们可以这么写;

select rownum,e.* from emp e where rownum <=10;

于是根据rownum,这个时候我们产生了分页的一个想法,取6~10条记录:

select rownum,e.* from emp e where rownum >5 and rownum <=10;

但是我们发现这行不通,那么怎么会出现这个情况呢?原因在于,当生成结果集时,rownum每次都是从1开始产生,但是我们的条件里rownum>5,导致这条记录被过滤,这样再次次产生的rownum都是1,再次过滤,以此一直持续下去。

那么怎么实现分页呢?重要之处在于:

子查询里固定表里面数据的记录编号,外层查询过滤子查询里面固定的记录编号就可以实现Oracle分页!

select  *  from (select rownum rn,e.* from emp e where rownum <=10 ) e1 where rn>6;

如果我们要对emp表中的列sal进行排序,再分页,我们可以这样写。

select *
from (select rownum r,e1.*
from (select * from emp order by sal) e1
where rownum <=8
)
where r >=5;

 

最新文章

  1. top命令
  2. Canvas画图在360浏览器中跑偏的问题
  3. Xcode安装的推送证书所在目录
  4. MVC。Action方法,常用的返回类型有几种?
  5. 如何解决cellIndex在IE下兼容性问题
  6. python将json格式的数据转换成文本格式的数据或sql文件
  7. 【LOI2005】【P1306】河流
  8. hbuilder的aptana php插件无法提示命名空间之外函数和对象的解决办法
  9. 在编辑框(CEdit)控件上追加内容
  10. 某deed笔试题
  11. [转载]MongoDB开发学习(2)索引的基本操作
  12. Mac OS X安装之硬盘和光盘引导总结
  13. 【一天一道LeetCode】#106. Construct Binary Tree from Inorder and Postorder Traversall
  14. chrome &quot;Provisional headers are shown&quot;
  15. [UOJ310] 黎明前的巧克力
  16. CentOS 6.9/7通过yum安装指定版本的MySQL
  17. 【C++ Primer 第13章】6.对象移动
  18. 微软BI 之SSIS 系列 - 变量查询语句引起列输出顺序不一致的解决方法
  19. Net::HTTP 一次添加 cookie, body 发送post请求
  20. Windows远程桌面连接的利器-mRemote

热门文章

  1. ORACLE中死锁的知识点总结
  2. 【基础】C#异常处理的总结
  3. Dojo初探之3:dojo的DOM操作、query操作和domConstruct元素位置操作(基于dojo1.11.2版本)
  4. 在WIN SERVER 2016上安装DOCKER(带过坑)
  5. XtraBackup物理备份 阿里云的Mysql备份方案
  6. android蓝牙学习
  7. SQL Server 使用ROW_NUMBER实现的高效分页排序
  8. Akka(9): 分布式运算:Remoting-远程构建式
  9. CSS 中的内联元素、块级元素、display的各个属性的特点
  10. jQuery实现按Enter键触发事件