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 相关文章推荐
2021-4-3课程——SQL Server查询【2】
Apr 05 SQL Server
SQL Server数据定义——模式与基本表操作
Apr 05 SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
Apr 16 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
利用 SQL Server 过滤索引提高查询语句的性能分析
Jul 15 SQL Server
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 SQL Server
SQL Server中使用表变量和临时表
May 20 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
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中ADODB类详解
2008/03/25 PHP
php 文件缓存函数
2011/10/08 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
javascript函数库-集合框架
2007/04/27 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
python的id()函数解密过程
2012/12/25 Python
Python subprocess库的使用详解
2018/10/26 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
中专毕业生自荐信范文
2013/11/28 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
教师师德演讲稿
2014/05/06 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
python实现图片批量压缩
2021/04/24 Python
SQL写法--行行比较
2021/08/23 SQL Server
Java spring单点登录系统
2021/09/04 Java/Android
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python
源码安装apache脚本部署过程详解
2022/09/23 Servers