说一下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开发的一般流程
Aug 13 面试题
super()与this()的区别
Jan 17 面试题
如何打开WebSphere远程debug
Oct 10 面试题
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
May 09 面试题
写一个在SQL Server创建表的SQL语句
Mar 10 面试题
一些.net面试题
Oct 06 面试题
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
Oct 15 面试题
山海经纬软件测试笔试题和面试题
Apr 02 面试题
EntityManager都有哪些方法
Nov 01 面试题
JavaScript获取当前url根目录(路径)
Feb 19 面试题
有abstract方法的类一定要用abstract修饰吗
Mar 14 面试题
Java语言程序设计测试题选择题部分
Apr 03 面试题
天游软件面试
Nov 23 #面试题
介绍一下内联、左联、右联
Dec 31 #面试题
如何用SQL语句进行模糊查找
Sep 25 #面试题
存储过程的优缺点是什么
Jan 10 #面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 #面试题
介绍一下SQL Server里面的索引视图
Jul 31 #面试题
一组SQL面试题
Feb 15 #面试题
You might like
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
举例讲解Python中的算数运算符的用法
2015/05/13 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
同事打架检讨书
2014/02/04 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
《学棋》教后反思
2014/04/14 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
社会发展项目建议书
2014/08/25 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
工作总结与自我评价
2014/09/18 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
十七岁的单车观后感
2015/06/12 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang