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数据库单表查询 4.3实验课
Apr 05 SQL Server
SQL Server连接查询的实用教程
Apr 07 SQL Server
SQLServer2019 数据库的基本使用之图形化界面操作的实现
Apr 08 SQL Server
sql中mod()函数取余数的用法
May 29 SQL Server
sql server删除前1000行数据的方法实例
Aug 30 SQL Server
SQL Server中常用截取字符串函数介绍
Mar 16 SQL Server
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
Apr 22 SQL Server
SQL Server中锁的用法
May 20 SQL Server
SQL Server中搜索特定的对象
May 25 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 SQL Server
SQL解决未能删除约束问题drop constraint
May 30 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句法规则详解 入门学习
2011/11/09 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
python怎么删除缓存文件
2020/07/19 Python
综治宣传月活动总结
2014/04/28 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
后进生评语大全
2015/01/04 职场文书
团日活动总结格式
2015/05/11 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技