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 数据库实验课第五周——常用查询条件
Apr 05 SQL Server
SQLServer2019 数据库环境搭建与使用的实现
Apr 08 SQL Server
SQL 窗口函数实现高效分页查询的案例分析
May 21 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
SqlServer数据库远程连接案例教程
Jul 15 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQL SERVER实现连接与合并查询
Feb 24 SQL Server
SQL Server查询某个字段在哪些表中存在
Mar 03 SQL Server
MySQL 中如何归档数据的实现方法
Mar 16 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
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 form 表单传参明细研究
2009/07/17 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
使用js画图之饼图
2015/01/12 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
Python查询IP地址归属完整代码
2017/06/21 Python
Python读取stdin方法实例
2019/05/24 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
adidas泰国官网:adidas TH
2020/07/11 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
应用英语专业自荐信
2014/01/26 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
代领报检证委托书范本
2014/10/11 职场文书
2014年车间工作总结
2014/11/21 职场文书
中学推普周活动总结
2015/05/07 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
优化Mysql查询的示例
2022/04/26 MySQL