当前位置: 首页 > news >正文

SQLServer数据分页

一.分页

将一定量的数据进行分页,每一页中定量存储数据

1.top分页查询

比如当前存在于数据库中的一共有40条数据,我们将每10条数据算作一页,那么一共可以分出4页,如果要进行查询的话,只需要使用如下格式即可:

--查询第一页
select top 5 * from Student 
--查询第二页
select top 5 * from Student 
where Id not in(1,2,3,4,5,6,7,8,9,10)

注意点:虽然我们一般所使用的Id自增长形式为identity(1,1),即从1开始,每次增长1,但是在我们查询分页时还是要注意Id的自增长形式,避免出错

而从上方的示例中不知道你们有没有发现一个规律,写出来是这样的:

select top 页码 * from 表名 

where Id not in(select top 页码*(当前页-1) Id from 表名)

所以正确的分页查询格式应该为:

select top 5 * from Student 
where Id not in(select top 0 Id from Student) 
select top 5 * from Student 
where Id not in(select top 5 Id from Student)
select top 5 * from Student 
where Id not in(select top 10 Id from Student)

若是运用了变量,那么就更容易理解了

declare @Size int = 5 
declare @Page int = 1 
select top (@Size) * from Student 
where Id not in(select top (@Size * (@Page - 1)) Id from Student) 

只需要修改Page变量(页数),就可以查询到该页的数据了

2.row_number分页查询

格式为:

select * from 
(select row_number() over(order by Id) RowId,* from Student) 
where Id between (当前页号-1) * 每页大小 + 1 and 当前页号 * 每页大小 

同样使用到变量进行举例:

declare @Size int = 5 
declare @Page int = 1
select * from 
(select row_number() over(order by Id) RowId,* from Student) 
where Id between (@Page-1) * @Size + 1 and @Page * @Size  

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 关于 mybatis-plus-boot-starter 与 mybatis-spring-boot-starter 的错误
  • 快速理解TCP协议(一)——TCP协议深度解析
  • Ubuntu20.04 搜索不到任何蓝牙设备
  • 微软宣布弃用面向企业的WSUS更新服务 仍然保留该服务但不再添加任何新功能
  • 50页PPT麦肯锡精益运营转型五步法
  • Android RecyclerView 实现 GridView ,并实现点击效果及方向位置的显示
  • 只装了WPS,DOC文档无法打开
  • 第二章 SpringBoot环境下yml和properties的几种玩法
  • 美信监控易的优势:长期稳定运行
  • 让AI激发创作力:OpenAI分享5位专业作家利用ChatGPT写作的案例技巧
  • JSP 指令标识和脚本标识的使用
  • 828 华为云征文|华为 Flexus 云服务器搭建 SamWaf 开源轻量级网站防火墙
  • 快速搭建Kubernetes集群
  • SpringBoot3核心特性-核心原理
  • 【已解决】使用JAVA实现递归算法-从自然数中取3个数进行组合之循环算法
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • Android 架构优化~MVP 架构改造
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript异步流程控制的前世今生
  • js写一个简单的选项卡
  • MySQL-事务管理(基础)
  • Sublime text 3 3103 注册码
  • vue自定义指令实现v-tap插件
  • 测试如何在敏捷团队中工作?
  • 产品三维模型在线预览
  • 订阅Forge Viewer所有的事件
  • 仿天猫超市收藏抛物线动画工具库
  • 分布式任务队列Celery
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 聚簇索引和非聚簇索引
  • 深度学习入门:10门免费线上课程推荐
  • 网页视频流m3u8/ts视频下载
  • FaaS 的简单实践
  • MyCAT水平分库
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #162 (Div. 2)
  • #include<初见C语言之指针(5)>
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (离散数学)逻辑连接词
  • (面试必看!)锁策略
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • **PHP分步表单提交思路(分页表单提交)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Core 通过 Ef Core 操作 Mysql