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
SqlServer 垂直分表(减少程序改动)
Apr 16 SQL Server
如何有效防止sql注入的方法
May 25 SQL Server
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 SQL Server
MySQL 中如何归档数据的实现方法
Mar 16 SQL Server
通过T-SQL语句创建游标与实现数据库加解密功能
Mar 16 SQL Server
SQLServer权限之只开启创建表权限
Apr 12 SQL Server
SQL Server中搜索特定的对象
May 25 SQL Server
SQL Server中的逻辑函数介绍
May 25 SQL Server
SQL中的连接查询详解
Jun 21 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
Django数据库操作的实例(增删改查)
2017/09/04 Python
python字典快速保存于读取的方法
2018/03/23 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
应届毕业生自荐信
2014/05/28 职场文书
商业街策划方案
2014/05/31 职场文书
中秋晚会活动方案
2014/08/31 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
2014年转正工作总结
2014/11/08 职场文书
2014年共青团工作总结
2014/12/10 职场文书
小学生优秀评语
2014/12/29 职场文书
医院员工辞职信范文
2015/05/12 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书