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 相关文章推荐
SQLServer中JSON文档型数据的查询问题解决
Jun 27 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
SQL写法--行行比较
Aug 23 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 SQL Server
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 SQL Server
SQL CASE 表达式的具体使用
Mar 21 SQL Server
MSSQL基本语法操作
Apr 11 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
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
php数组比较实现查找连续数的方法
2015/07/29 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
简单的JS多重继承示例
2008/03/13 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
在HTML中使用JavaScript的两种方法
2020/12/24 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
python同步windows和linux文件
2019/08/29 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
PHP经典面试题
2016/09/03 面试题
教师师德承诺书2016
2016/03/25 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
Python面向对象之成员相关知识总结
2021/06/24 Python