说一下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...

面试题 相关文章推荐
一份全面的PHP面试问题考卷
Jul 15 面试题
康拓普公司Java笔面试
Sep 23 面试题
解释一下ArrayList Vector和LinkedList的实现和区别
Apr 26 面试题
Java如何格式化日期
Aug 07 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
Jul 26 面试题
Can a struct inherit from another class? (结构体能继承类吗)
Jul 22 面试题
中科创达面试题
Dec 28 面试题
DTD的含义以及作用
Jan 26 面试题
Java如何获得ResultSet的总行数
Sep 03 面试题
设置器与访问器的定义以及各自特点
Jan 08 面试题
Java模拟试题
Nov 10 面试题
四种会话跟踪技术
May 20 面试题
天游软件面试
Nov 23 #面试题
介绍一下内联、左联、右联
Dec 31 #面试题
如何用SQL语句进行模糊查找
Sep 25 #面试题
存储过程的优缺点是什么
Jan 10 #面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 #面试题
介绍一下SQL Server里面的索引视图
Jul 31 #面试题
一组SQL面试题
Feb 15 #面试题
You might like
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
用javascript实现自定义标签
2007/05/08 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
JS实现手风琴特效
2020/11/08 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
Python实现手绘图效果实例分享
2020/07/22 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
西尔斯百货官网:Sears
2016/09/06 全球购物
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
军训考核自我鉴定
2014/02/13 职场文书
公司离职证明样本
2014/09/13 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
出纳工作检讨书
2014/10/18 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
幼儿园见习报告
2014/10/30 职场文书
大学生党课心得体会
2016/01/07 职场文书
2019年思想汇报
2019/06/20 职场文书
Python中相见恨晚的技巧
2021/04/13 Python