说一下mysql, oracle等常见数据库的分页实现方案


Posted in 面试题 onSeptember 29, 2012
1.Oracle:
select * from ( select row_.*, rownum rownum_ from ( query_SQL ) row_ where rownum == min
2.SQL Server:
select top @pagesize * from tablename where id not in (select top @pagesize*(@page-1) id from tablename order by id) order by id

3.MySQL
select * from tablename limit position, counter

4.DB2
select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXT between min and max

——————————————————————————————–
1.分页方案一:(利用Not In和SELECT TOP分页)效率次之
语句形式:
SELECT TOP 10 * FROM TestTable
WHERE(ID NOT IN (SELECT TOP 20 id FROM TestTable ORDERBY id)) ORDERBYID
SELECT TOP 页大小 * FROM TestTable
WHERE( ID NOT IN (SELECT TOP 每页大小-1*待查询页数-1 id FROM 表 ORDERBY id)) ORDERBYID
思路:先查询出待查询页之前的全部条数的id,查询ID不在这些ID中的指定数量条数

2.分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高
语句形式:
SELECT TOP 10 * FROM TestTable
WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP20 id FROM TestTable ORDERBYid)AS T))ORDERBY ID
SELECT TOP 页大小* FROM TestTable
WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP 每页大小*待查询页数-1 id FROM 表 ORDERBY id)AS T)) ORDERBY ID
思路:先获得待查询页的之前全部条数id,获得它们当中最大的ID号,以此最大ID号为标志,查找比这个ID号大的指定条数

3.分页方案三:
SELECT TOP PageSize * FROM(SELECT TOP nPage*PageSize * from YOURTABLE order by id)as a order by id desc
SELECT TOP 每页条数 * FROM (SELECT TOP 待查询页*每页条数) * from YOURTABLE order by id)as a order by id desc
思路:先正排序查询出待查询页之前(包括当前页)的全部条数,然后将其倒排序,取指定条数

Tags in this post...

面试题 相关文章推荐
String和StringBuffer的区别
Aug 13 面试题
开发中都用到了那些设计模式?用在什么场合?
Aug 21 面试题
求网格中的黑点分布
Nov 06 面试题
如何在存储过程中使用Loop
Jan 05 面试题
必须要使用游标的SQL语句有那些
May 07 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
什么是属性访问器
Oct 26 面试题
C#如何调用Word并打开一个Word文档
May 08 面试题
静态成员和非静态成员的区别
May 12 面试题
常见的软件开发流程有哪些
Nov 14 面试题
内部类的定义、种类以及优点
Oct 16 面试题
一套Delphi的笔试题二
May 11 面试题
天游软件面试
Nov 23 #面试题
介绍一下内联、左联、右联
Dec 31 #面试题
如何用SQL语句进行模糊查找
Sep 25 #面试题
存储过程的优缺点是什么
Jan 10 #面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 #面试题
介绍一下SQL Server里面的索引视图
Jul 31 #面试题
一组SQL面试题
Feb 15 #面试题
You might like
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
python机器学习库常用汇总
2017/11/15 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Python模块的加载讲解
2019/01/15 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
校长先进事迹材料
2014/02/01 职场文书
企业后勤岗位职责
2014/02/28 职场文书
放假通知怎么写
2015/08/18 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书