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——索引+基于单表的数据插入与简单查询【1】
Apr 05 SQL Server
SQLServer2019 数据库环境搭建与使用的实现
Apr 08 SQL Server
解决sql server 数据库,sa用户被锁定的问题
Jun 11 SQL Server
SQLServer中JSON文档型数据的查询问题解决
Jun 27 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
SQLServer之常用函数总结详解
Aug 30 SQL Server
SQL SERVER存储过程用法详解
Feb 24 SQL Server
Sql Server之数据类型详解
Feb 28 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
sql server偶发出现死锁的解决方法
Apr 10 SQL Server
SQL Server 中的事务介绍
May 20 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 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应用技巧
2008/03/27 PHP
php教程之phpize使用方法
2014/02/12 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
树结构之JavaScript
2017/01/24 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
PHP面试题附答案
2015/11/28 面试题
事业单位个人应聘自荐信
2013/09/21 职场文书
2013年大学生的自我鉴定
2013/10/24 职场文书
商场促销活动方案
2014/02/08 职场文书
水电工岗位职责
2014/02/12 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
MySQL分区以及建索引的方法总结
2022/04/13 MySQL
Oracle中日期的使用方法实例
2022/07/07 Oracle