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 22 SQL Server
sql中mod()函数取余数的用法
May 29 SQL Server
解决sql server 数据库,sa用户被锁定的问题
Jun 11 SQL Server
sql字段解析器的实现示例
Jun 23 SQL Server
SqlServer数据库远程连接案例教程
Jul 15 SQL Server
Spark SQL 2.4.8 操作 Dataframe的两种方式
Oct 16 SQL Server
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
SQL Server表分区降低运维和维护成本
Apr 08 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
使用MybatisPlus打印sql语句
Apr 22 SQL Server
SQL Server携程核心系统无感迁移到MySQL实战
Jun 01 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
Jquery 数组操作大全个人总结
2013/11/13 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
python实现简单飞行棋
2020/02/06 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
分公司经理任命书
2014/06/05 职场文书
学雷锋倡议书
2015/01/19 职场文书
投诉信格式范文
2015/07/02 职场文书
感恩教师主题班会
2015/08/12 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技