SQL Server 2012 OFFSET/FETCH NEXT分页示例
原文:http://beyondrelational.com/modules/29/presentations/483/scripts/12983/sql-server-2012-server-side-paging-demo-using-offsetfetch-next.aspx?utm_source=brnewsletter&utm_medium=email&utm_campaign=2012Apr
SQL Server 2005 引入了 ROW_NUMBER()来提供一种容易的分页方式。 SQL Server 2012 添加了另外一种更简单高效的分页方式。
- /*
- 执行脚本去创建这个表并插入数据。
- */
- IF OBJECT_ID('Customers','U') IS NOT NULL
- DROP TABLE Customers
- CREATE TABLE Customers (
- CustomerID INT,
- CustomerNumber CHAR(4),
- CustomerName VARCHAR(50),
- CustomerCity VARCHAR(20) )
- GO
- INSERT INTO Customers (
- CustomerID, CustomerNumber, CustomerName, CustomerCity
- )
- SELECT
- Number,
- REPLACE(STR(Number, 4), ' ', '0'),
- 'Customer ' + STR(number,6),
- CHAR(65 + (number % 26)) + '-City'
- FROM master..spt_values WHERE type = 'p'
- AND number BETWEEN 0 AND 999
- /*
- 用ROW_NUMBER()的分页示例- SQL Server 2005/2008 版本。
- */
- DECLARE @page INT, @size INT
- SELECT @page = 3, @size = 10
- ;WITH cte AS (
- SELECT TOP (@page * @size)
- CustomerID,
- CustomerName,
- CustomerCity,
- ROW_NUMBER() OVER(ORDER BY CustomerName ) AS Seq,
- COUNT(*) OVER(PARTITION BY '') AS Total
- FROM Customers
- WHERE CustomerCity IN ('A-City','B-City')
- ORDER BY CustomerName ASC
- )
- SELECT
- *
- FROM cte
- WHERE seq BETWEEN (@page - 1 ) * @size + 1 AND @page * @size
- ORDER BY seq
- /*
- SQL Server 2012中新添加的分页示例
- */
- DECLARE @page INT, @size INT
- SELECT @page = 3, @size = 10
- SELECT
- *,
- COUNT(*) OVER(PARTITION BY '') AS Total
- FROM Customers
- WHERE CustomerCity IN ('A-City','B-City')
- ORDER BY CustomerID
- OFFSET (@page -1) * @size ROWS
- FETCH NEXT @size ROWS ONLY;
- /*
- 同时执行这两个版本,打开执行计划,你可以注意到在这个例子中显著的性能差异。
- */
SQL Server 2012 OFFSET/FETCH NEXT分页示例相关推荐
- 一起玩转SQL Server 2012 下的分析服务
转载自:https://blog.csdn.net/aspnetx/article/details/8712286 提到SQL Server 2012的分析服务,那么不得不先说下商业智能,它是一个由数 ...
- Sql Server 2012 分页方法分析(offset and fetch)
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中 offse ...
- 安装SQL Server 2012示例数据库
SQL Server的示例数据库是一个非常好的学习数据库的范例,在安装完SQL Server 2012后,默认情况下是不会安装示例数据库的,我们需要自己进行一些安装和设置. 安装Adventure W ...
- SQL Server 2012 显式授权示例
一.概述 1.GRANT 将安全对象的权限授予主体. 2.DENY 拒绝授予主体权限.防止主体通过其组或角色成员身份继承权限. 3.REVOKE 取消以前授予或拒绝了的权限. 二.示例 SQL Ser ...
- Sql Server RowNumber和表变量分页性能优化小计
直接让代码了,对比看看就了解了 当然,这种情况比较适合提取字段较多的情况,要酌情而定 性能较差的: WITH #temp AS ( Select column1,column2,column3,col ...
- 《T-SQL性能调优秘笈——基于SQL Server 2012 窗口函数》——1.1 窗口函数的背景...
本节书摘来自异步社区出版社<T-SQL性能调优秘笈--基于SQL Server 2012 窗口函数>一书中的第1章,第1.1节,作者: [美]Itzik Ben-Gan,更多章节内容可以访 ...
- 微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍...
在SSDT中部署一个 SSAS 项目到本地服务器上出现错误. You cannot deploy the model because the localhost deployment server i ...
- 使用 SQL Server 2012 Analysis Services Tabular Mode 表格建模 图文教程
原文 http://www.cnblogs.com/biwork/archive/2013/05/22/3093896.html BI Work 使用 SQL Server 2012 Analysis ...
- SQL Server 2012入门T-SQL基础篇:(1)环境准备
此系列只是针对介绍T-SQL,对环境系统不做具体的讲解,请参考官方网站查看SQL SERVER 2012对硬件和系统的具体要求,参考网址 (1)到官方网站下载SQL SERVER 2012 (2)为减 ...
最新文章
- 小白也能看懂的Matplotlib简明教程
- Enterprise Library 3.0 体验(3):使用配置文件的Validation Application Block
- 043_集合重要知识点
- 项目管理九大知识体系:
- 2层框架结构柱子间距_2分钟掌握五种不同类型的厂房结构,找厂房少绕弯!
- 心灵战争服务器维护,心灵战争服务器异常产生哪些问题如何解决_心灵战争服务器异常产生问题及解决方法_玩游戏网...
- 项目立项管理:项目可行性分析和项目审批
- mysql 性能问题_mysql 性能问题
- QT 简单应用之播放WAV声音
- re2020 bt2020_如何在2020年选择最佳博客平台(比较)
- VMware与xshell安装教程
- android 文件管理器 apk,Android6.0自带文件管理器无法打开apk文件
- 微信发红包测试用例设计
- n*n蛇形方阵的输出
- PA2.2 PA2.3
- Ubuntu wine QQ 微信乱码
- Android 跳转外部浏览器坑
- 安全加解密引擎基础(ECC、ECDH)
- iOS开发关于block和局部变量和全局变量
- 二个数据库之间怎么同步
热门文章
- 二进制,十进制,十六进制
- 如何利用azMan (Authorization Manager) 实现 role-based的安全验证机制
- 事务隔离机制原理深入分析以及MySQL不同隔离级别分场景下实验对比
- 网络模型 - 随机网络,无标度网络,分层网络
- 四层和七层交换技术-loadbalance
- Tcpdump命令的使用与示例——linux下的网络分析
- 仿照redis写的nginx开机画面
- 【Qt】Qt动态库和静态库的创建和使用
- webkit内核 css,纯CSS改变webkit内核浏览器的滚动条样式
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?