SQL Server实现分页方法介绍


Posted in SQL Server onMarch 16, 2022

一、创建测试表

CREATE TABLE [dbo].[Student](
    [id] [int] NOT NULL,
    [name] [nvarchar](50) NULL,
    [age] [int] NULL)

二、创建测试数据

declare @i int
set @i=1
while(@i<10000)
begin
    insert into Student select @i,left(newid(),7),@i+12
    set @i += 1
end

三、测试

1、使用top关键字

top关键字表示跳过多少条取多少条

declare @pageCount int  --每页条数
declare @pageNo int  --页码
declare @startIndex int --跳过的条数
set @pageCount=10
set @pageNo=3
set @startIndex=(@pageCount*(@pageNo-1)) 
select top(@pageCount) * from Student
where ID not in
(
  select top (@startIndex) ID from Student order by id 
) order by ID

测试结果:

SQL Server实现分页方法介绍

2、使用row_number()函数

declare @pageCount int  --页数
declare @pageNo int  --页码
set @pageCount=10
set @pageNo=3
--写法1:使用between and 
select t.row,* from 
(
   select ROW_NUMBER() over(order by ID asc) as row,* from Student
) t where t.row between (@pageNo-1)*@pageCount+1 and @pageCount*@pageNo
--写法2:使用 “>”运算符
 select top (@pageCount) * from 
(
   select ROW_NUMBER() over(order by ID asc) as row,* from Student
) t where t.row >(@pageNo-1)*@pageCount
--写法3:使用and运算符 
select top (@pageCount) * from 
(
   select ROW_NUMBER() over(order by ID asc) as row,* from Student
) t where t.row >(@pageNo-1)*@pageCount and t.row<(@pageNo)*@pageCount+1

四、总结

ROW_NUMBER()只支持sql2005及以上版本,top有更好的可移植性,能同时适用于sql2000及以上版本、access。

这篇文章介绍了SQL Server实现分页方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

SQL Server 相关文章推荐
SQL Server——索引+基于单表的数据插入与简单查询【1】
Apr 05 SQL Server
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
SQL语句中JOIN的用法场景分析
Jul 25 SQL Server
sql server删除前1000行数据的方法实例
Aug 30 SQL Server
SQL SERVER存储过程用法详解
Feb 24 SQL Server
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
SQL Server Agent 服务无法启动
Apr 20 SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
May 25 SQL Server
SQL Server中常用截取字符串函数介绍
Mar 16 #SQL Server
通过T-SQL语句创建游标与实现数据库加解密功能
Mar 16 #SQL Server
MySQL 中如何归档数据的实现方法
SQL Server查询某个字段在哪些表中存在
Mar 03 #SQL Server
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 #SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 #SQL Server
Sql Server之数据类型详解
Feb 28 #SQL Server
You might like
dedecms模版制作使用方法
2007/04/03 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
jQuery Ajax 全解析
2009/02/08 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
javaScript基础详解
2017/01/19 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
微信小程序实现人脸检测功能
2018/05/25 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
在Python中编写数据库模块的教程
2015/04/29 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
二年级评语大全
2014/04/23 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
优秀英文求职信范文
2015/03/19 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
银行培训心得体会范文
2016/01/09 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
《春酒》教学反思
2016/02/22 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书