首页 > 数据库 >[转][SQL Server]分页查询

[转][SQL Server]分页查询

时间:2024-03-11 10:14:44浏览次数:35  
标签:分页 PageSize OFFSET Server pageNumber SQL FETCH SELECT

方式一:使用 OFFSET/FETCH 子句(SQL Server 2012 及以上版本支持)

-- 假设 PageSize 表示每页的记录数,pageNumber 表示当前页码(从1开始)
DECLARE @PageSize INT = 10;
DECLARE @pageNumber INT = 3;

SELECT *
FROM table1
ORDER BY Id -- 或者按其他字段排序
OFFSET (@pageNumber - 1) * @PageSize ROWS
FETCH NEXT @PageSize ROWS ONLY;

方式二:使用 ROW_NUMBER() 函数

WITH CTE AS (
    SELECT *,
           ROW_NUMBER() OVER (ORDER BY Id) AS RowNum
    FROM table1
)
SELECT *
FROM CTE
WHERE RowNum BETWEEN (@pageNumber - 1) * @PageSize + 1 AND @pageNumber * @PageSize;

这两种方式都可以实现对 table1 表的分页查询,不过 OFFSET/FETCH 的方式更为简洁直观。

标签:分页,PageSize,OFFSET,Server,pageNumber,SQL,FETCH,SELECT
From: https://www.cnblogs.com/z5337/p/18065428

相关文章

  • MySQL 8.0.26版本升级32版本查询数据为空的跟踪
    某业务系统将MySQL8.0.26升级为GreatSQL8.0.32-24后,某些特定的SQL语句不能查询到数据。经测试MySQL8.0.32也存在相同的问题此BUG已在GreatSQL8.0.32-25版本中解决MySQL8.0.26版本升级32版本查询数据为空的跟踪接到客户反馈的问题后,对问题进行了复现和分析。版本信......
  • SQL Server2008 R2开启远程连接总结
      ==============================SQLServer2008R2开启远程连接(最全总结)==============================安装过程:适用WindowsXPSP3、Windows7、WindowsServer2008R2、Windows8、Windows101、安装VisualStudio2010旗舰版2、安装VisualStudio2010SP13、安装S......
  • SQL Server 2008R2完整安装教程
    安装包:sql_server_2008_r2(提取码:fqro)安装教程:点击左侧“安装”按钮选择“全新安装或现有........”  安装层析支持规则:全部已通过——点击“确定”按钮 产品密钥:一般下会有默认密钥,如果没有默认密钥下载激活秘钥粘贴即可 ↓粘贴秘钥后点击“下一步” 许......
  • 服务器配置记录MSSQL
    安装SQLSERVER的时候报错:无法通过WINDOWS功能控制面板自动安装或卸载WINDOWSSERVER角色和功能。WinServer2012R2安装MSSQL2008R2只需安装.NETFramework3.5/更高版本1.打开“服务器管理器”,选择“添加角色和功能”  2.连续点击“下一步”,直到“功能”选项卡中,勾选......
  • Mysql如何给字符串添加索引(前缀索引)
    在日常开发中,我们经常给字符串添加索引,那么给字段添加索引有什么技巧吗,我们看看下面的例子,我们给一个邮箱添加索引,应该如何添加呢看看下面这条sqlselect*fromuserwhereemail='[email protected]'如果我们不添加索引,肯定是要进行全表扫描的,那么我们如何添加呢有两种方式a......
  • MYSQL学习笔记23: 多表查询(自连接内连接+左右外连接)
    多表查询(自连接)自连接查询,可以是内连接查询,也可以是外连接查询select字段列表from表A别名Ajoin表A别名Bon条件...;自连接内连接查询员工以及所属领导的名字#可以这样写selecte1.name'员工',e2.name'上司'fromempe1joinempe2one1.man......
  • MYSQL学习笔记24: 多表查询(联合查询,Union, Union All)
    多表查询(联合查询,union,unionall)union查询需要多张表的列数一致,字段类型也保持一致对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集select字段列表from表A...union[all]select字段列表from表B...;查询出薪资低于10000,或年龄......
  • MYSQL学习笔记25: 多表查询(子查询)[标量子查询,列子查询]
    多表查询(子查询)子查询,也称嵌套查询子查询的语句可以是insert/update/delete/select中的任何一个根据子查询的结果不同,可以分为:标量子查询(结果为单个值)列子查询(结果为一列)行子查询(子查询结果为一行)表子查询(子查询结果为多行多列)select*fromt1wh......
  • MySQL-扩展
    存储引擎体系结构连接层最上层是一些客户端和链接服务,主要是完成一些类似于链接处理、授权认证及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内......
  • Mysql-基础
    数据模型可以建立多个数据库,各数据库隔离数据库中可以建立多各关系型数据表SQL分类DDL数据定义语言,用来定义数据库对象(数据库、表、字段)数据库操作查询查询所有数据库SHOWDATABSE;查询当前数据库SELECTDATABASE();创建创建数据库CREATADATABASE[IFNOTEXIS......