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基本使用和简单的CRUD操作
Apr 05 SQL Server
Sql-Server数据库单表查询 4.3实验课
Apr 05 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
Apr 05 SQL Server
SQLServer2019 数据库环境搭建与使用的实现
Apr 08 SQL Server
SQLServer2019 数据库的基本使用之图形化界面操作的实现
Apr 08 SQL Server
SQL 窗口函数实现高效分页查询的案例分析
May 21 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
SQL Server查询某个字段在哪些表中存在
Mar 03 SQL Server
MySQL 中如何归档数据的实现方法
Mar 16 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
如何使用SQL Server语句创建表
Apr 12 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增删改查示例自己写的demo
2013/09/04 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP输出日历表代码实例
2015/03/27 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
Python进度条的制作代码实例
2019/08/31 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
极简的HTML5模版
2015/07/09 HTML / CSS
Java程序员面试90题
2013/10/19 面试题
协议书范本
2014/04/23 职场文书
迎新生标语大全
2014/10/06 职场文书
万里长城导游词
2015/01/30 职场文书
大学生暑假实习总结
2015/07/13 职场文书
python元组打包和解包过程详解
2021/08/02 Python
PHP获取学生成绩的方法
2021/11/17 PHP