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-5课程——SQL Server查询【3】
Apr 05 SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
Apr 16 SQL Server
sql中mod()函数取余数的用法
May 29 SQL Server
在 SQL 语句中处理 NULL 值的方法
Jun 07 SQL Server
SQL中的三种去重方法小结
Nov 01 SQL Server
SQL Server2019数据库备份与还原脚本,数据库可批量备份
Nov 20 SQL Server
SQLServer中exists和except用法介绍
Dec 04 SQL Server
Sql Server之数据类型详解
Feb 28 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
SQL Server使用导出向导功能
Apr 08 SQL Server
SQL Server中锁的用法
May 20 SQL Server
SQL bool盲注和时间盲注详解
Jul 23 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解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
js的Prototype属性解释及常用方法
2014/05/08 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python练习程序批量修改文件名
2014/01/16 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
客服专员岗位职责范本
2013/11/29 职场文书
九年级数学教学反思
2014/02/02 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
就业协议书的作用
2014/04/11 职场文书
建设投标担保书
2014/05/13 职场文书
甜品店创业计划书
2014/08/14 职场文书
党员示范岗材料
2014/12/19 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
仓库管理制度范本
2015/08/04 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
详解Django的MVT设计模式
2021/04/29 Python
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL