SQL Server 2012使用Offset/Fetch Next实现分页数据查询

在Sql Server 2012之前,实现分页主要是使用ROW_NUMBER(),在SQL Server2012,可以使用Offset ...Rows  Fetch Next ... Rows only的方式去实现分页数据查询。

select [column1] ,[column2] ... ,[columnN] from [tableName] order by [columnM] offset (pageIndex-1)*pageSize rows fetch next pageSize rows only

上面代码中,column1,column2 ... columnN表示实现需要查询的列,tableName是表名,columnM是需要排序的列名,pageIndex是页码,pageSize是每页数据的大小,实际中一般是先计算(pageIndex-1)*pageSize的结果,然后在sql里直接使用具体的结果(数字)

例如数据库中有T_Student表,数据如下:

假如需要查询第3页的数据(由于数据少,这里假设每页数据是2条,即pageSize=2),那么SQL语句如下:

select [Id] ,[Name] ,[StudentId] ,[MajorId] from T_Student order by [Id] offset 4 rows fetch next 2 rows only

结果如下:

注意:使用Offset /Fetch Next需要指定排序,即必须有order by ***

总结

以上所述是小编给大家介绍的SQL Server 2012使用Offset/Fetch Next实现分页数据查询,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-08-02 01:42:14

SQL Server 2012使用Offset/Fetch Next实现分页数据查询的相关文章

SQLServer · 最佳实践 · SQL Server 2012 使用OFFSET分页遇到的问题

title: SQLServer · 最佳实践 · SQL Server 2012 使用OFFSET分页遇到的问题 author: 石沫 1. 背景 最近有一个客户遇到一个奇怪的问题,以前使用ROW_NUMBER来分页结果是正确的,但是替换为SQL SERVER 2012的OFFSET...FETCH NEXT来分页出现了问题,因此,这里简单分析一下原因,更深层次的原因还没有确切的结论,但可以提供解决办法. 在升级数据库后并且应用新功能时,这个问题可能会困扰一些同学. 2. 现象 为了复现在这个

简析SQL Server数据库用视图来处理复杂的数据查询关系_MsSql

SQL Server数据库用视图来处理复杂的数据查询关系是本文我们主要要介绍的内容,该内容是这样想到的:在辅助教务系统那块的时候,我做的一个页面是对单个老师和整个学院老师的工作量查询,这个操作设计到了三个本数据库中的表和一个不同数据库中的一个教师信息表,如果用普通的SQL语句是非常难实现的,由于我刚开始做的视频播放系统,数据库的表相对比较少,没有涉及到这么复杂的处理关系,刚开始感觉很难. 后来想到用视图可以解决多个表的复杂关系,但是另外一张表是不同数据库的,是否依然能进行操作,经过测试之后,居然

SQL Server数据库用视图来处理复杂的数据查询关系

SQL Server数据库用视图来处理复杂的数据查询关系是本文我们主要要介绍的内容,该内容是这样想到的:在辅助教务系统那块的时候,我做的一个页面是对单个老师和整个学院老师的工作量查询,这个操作设计到了三个本数据库中的表和一个不同数据库中的一个教师信息表,如果用普通的SQL语句是非常难实现的,由于我刚开始做的视频播放系统,数据库的表相对比较少,没有涉及到这么复杂的处理关系,刚开始感觉很难. 后来想到用视图可以解决多个表的复杂关系,但是另外一张表是不同数据库的,是否依然能进行操作,经过测试之 后,居

简析SQL Server数据库用视图来处理复杂的数据查询关系

SQL Server数据库用视图来处理复杂的数据查询关系是本文我们主要要介绍的内容,该内容是这样想到的:在辅助教务系统那块的时候,我做的一个页面是对单个老师和整个学院老师的工作量查询,这个操作设计到了三个本数据库中的表和一个不同数据库中的一个教师信息表,如果用普通的SQL语句是非常难实现的,由于我刚开始做的视频播放系统,数据库的表相对比较少,没有涉及到这么复杂的处理关系,刚开始感觉很难. 后来想到用视图可以解决多个表的复杂关系,但是另外一张表是不同数据库的,是否依然能进行操作,经过测试之后,居然

Denali不复存在:SQL Server 2012已宣布关注BI和大数据

在最近的PASS峰会上,微软宣布SQL Server的下一版本会叫做SQL Server 2012,它之前的开发代号是"Denali".此外还为其它产品赋予了官方的名称,包括Power View(之前叫做"Crescent")和SQL Server 数据工具(之前叫做"Juneau"). 最新版本的SQL Server 2012社区技术预览版是在七月份发布的,版本号是CTP 3.微软说该项目已经接近完成,并且期望在明年上半年发布正式版本,尽管还没

教你使用SQL Server 2012 Analysis Services Tabular Mode表格建模

以下内容为我个人对 MSDN 上提供的 "SQL Server 2012 Analysis Services Tabular Model 表格建模" 教程的实践, 包含了每一课中具体操作的图片实例, 一步一步图文记录了从数据源导入 , 创建关系, 计算列, 度量值, 层次结构, 透视, 角色到部署等每一个阶段, 对这个教程相信是一个有 益的补充. 如果觉得光看 MSDN 上文字教程比较枯涩, 对比着图片来一步一步操作也会帮助节省大家宝贵的学习 时间, 可以快速浏览本文了解一下 Tabu

使用 SQL Server 2012 Analysis Services Tabular Mode 表格建模 图文教程

原文 http://www.cnblogs.com/biwork/archive/2013/05/22/3093896.html BI Work 使用 SQL Server 2012 Analysis Services Tabular Mode 表格建模 图文教程 以 下内容为我个人对 MSDN 上提供的 "SQL Server 2012 Analysis Services Tabular Model 表格建模" 教程的实践, 包含了每一课中具体操作的图片实例, 一步一步图文记录了从数

SQL SERVER 2012 修改数据库默认位置不立即生效

今天修改SQL SERVER 2012的数据库默认位置:即数据文件.日志文件默认位置时遇到一个问题,单击"服务器属性"(Server Properties)--> 数据库设置(Database Settings), 修改了数据文件和日志的默认路径.点击确认后再打开该属性窗口,居然发现修改的值变回修改前的值了.刚开始我以为是修改没有生效,没有修改到注册表,但是检 查注册表,在HKEY_LOCAL_MACHINE  -> SOFTWARE -> Microsoft -&g

Sql Server 2012 分页方法分析(offset and fetch)_MsSql

其中 offset and fetch 最重要的新特性是 用来 分页,既然要分析 分页,就肯定要和之前的分页方式来比较了,特别是 Row_Number() 了,在比较过程中,发现了蛮多,不过最重要的,通过比较本质,得出了优劣,也和大家一起分享下. 准备工作,建立测试表:Article_Detail,主要是用来存放一些文章信息,测试的时间,都是从网易上面转载的新闻,同时,测试表数据字段类型是比较均匀的,为了更好的测试,表结构如下图:   内容: 数据量:129,991 条记录 语法分析 1. NT