SQL 分页查询的四种方法
方法一
假设现在有这样的一张表:
CREATE TABLE test (id int primary key not null identity,names varchar(20) )
然后向里面插入大约100条数据,进行分页测试
假设页数是10,现在要拿出第5页的内容,查询语句如下:
--10代表分页的大小
select top 10 * from test where id not in (--40是这么计算出来的:10*(5-1)select top 40 id from test order by id ) order by id
原理:需要拿出数据库的第5页,就是40-50条记录。首先拿出数据库中的前40条记录的id值,然后再拿出剩余部分的前10条元素
方法二
还是以上面的结果为例,采用另外的一种方法
--数据的意思和上面提及的一样
select top 10 * from test where id > (select isnull(max(id),0)from (select top 40 id from test order by id) A ) order by id
原理:先查询前40条记录,然后获得其最大id值,如果id值为null的,那么就返回0
然后查询id值大于前40条记录的最大id值的记录。这个查询有一个条件,就是id必须是int类型的。
方法三
select top 10 * from (select row_number() over(order by id) as rownumber,* from test ) A where rownumber > 40
原理:先把表中的所有数据都按照一个rowNumber进行排序,然后查询rownuber大于40的前十条记录
这种方法和oracle中的一种分页方式类似,不过只支持2005版本以上的
第四种:
存储过程查询
创建存储过程
alter procedure pageDemo @pageSize int, @page int AS declare @temp int set @temp=@pageSize*(@page - 1) beginselect top (select @pageSize) * from test where id not in (select top (select @temp) id from test) order by id end
执行存储过程
exec 10,5
转载于:https://www.cnblogs.com/running-mydream/p/4060313.html
SQL 分页查询的四种方法相关推荐
- sql oracle分页查询,【SQL】Oracle分页查询的三种方法-Oracle
[SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 [sql] select * from t_user t where ROWNUM <10; 按照学生ID排名 ...
- 分页条件查询_mongodb多条件分页查询的三种方法
自我推荐 一.使用limit和skip进行分页查询 public List<User> pageList(int pageNum ,int pageSize){List<User&g ...
- Oracle中进行分页查询的三种方法
前言: 在mysql数据库中,可以很简单的使用limit实现分页查询,不过limit不能在Oracle中使用,不过Oracle中有替代品rownum,接下来使用rownum去实现表emp(Oracle ...
- Oracle分页查询的两种方法
select * from (select rownum r,s.* from book s where rownum <=4) where r>=2; select * from (se ...
- java连接sql server2008_java连接sql-server-2008的四种方法
<java连接sql-server-2008的四种方法>由会员分享,可在线阅读,更多相关<java连接sql-server-2008的四种方法(11页珍藏版)>请在人人文库网上 ...
- SQL 分页查询语句大全即(查找第N到M条记录的方法)
SQL 分页查询语句大全即(查找第N到M条记录的方法) 第一种方法,我的原创方法 row=2 表示分页行数 page=1 表示页码 getnum=row*page select * from (se ...
- Spark SQL DataFrame新增一列的四种方法
Spark SQL DataFrame新增一列的四种方法 方法一:利用createDataFrame方法,新增列的过程包含在构建rdd和schema中 方法二:利用withColumn方法,新增列的过 ...
- 台式机计算机型号怎么查,电脑配置怎么查询?笔记本台式机查询电脑配置的四种方法...
电脑配置怎么查询?虽然说现在网络非常的发达,但是并不是每个人都是电脑专家,还有一些不怎么接触电脑的小白用户,对于电脑配置怎么查询并不了解.今天智能手机网就为大家带来了电脑配置查询的具体方法,一起来瞧一 ...
- 使用Spring Security3的四种方法概述
使用Spring Security3的四种方法概述 那么在Spring Security3的使用中,有4种方法: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中,已经实现过, ...
最新文章
- git客户端基本操作
- C#模拟鼠标键盘控制其他窗口(一)
- 000-SQL Server
- python人头识别_python+opencv实现人头检测
- java里顺序表怎么判断是否满_2、顺序表的实现(java代码)
- Java递归实现二分法
- wxWidgets:进程间通信
- 大数据主题分享第三期 | 基于ELK的亿级实时日志分析平台实践
- require_once的用法
- 论文阅读 - Beat Tracking by Dynamic Programming
- 数论 —— 线性同余方程组与中国剩余定理
- 在CMakeLists.txt文件中包含Eigen
- 【MDVRP】基于matlab水滴算法求解多仓库车辆路径规划问题【含Matlab源码 1310期】
- Hypermesh-优化案例学习笔记-cclip
- 从苏宁电器到卡巴斯基第36篇:我与卡巴斯基的邂逅(上)
- IDC发布中国AI云服务市场报告 百度智能云排名第一
- 程序员的奋斗史(七)——沟通交流、表达能力的重要性
- linux命令 - tail:查看文件最后几行的命令
- C#工控上位机实例_南京物流仓库【仓库物流】_智能云仓储库存wms管理分配货_电子标签价签拣货系统_工控erp上位机软件开发设计...
- rke 部署的时候报错:Failed to set up SSH tunneling for host
热门文章
- 我的docker随笔13:docker源码编译进阶篇
- YUV格式学习:YUV422P、YV16、NV16、NV61格式转换成RGB24
- u-boot移植随笔:u-boot启动流程简图
- vue-cli目录结构介绍
- 关于/etc/shadow 文件的九段内容的详细解释
- Oracle数据库报错【ORA-12514 】TNS 监听程序当前无法识别连接描述符中请求服务
- mysql安装mac 压缩包_MySQL8.0安装详解(图文版)
- db2存储过程手动执行没有问题_轻松解决DB2创建存储过程时遇到的错误
- 【linux】Permission denied (publickey) SSH用户名密码登录报错
- 【Flink】Flink 1.14 版本 新特性 Barrier 在流经算子做 checkpoint Barrier跳过 unaligned checkpoint