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 OFFSET/FETCH NEXT分页示例(转载)
原文:http://beyondrelational.com/modules/29/presentations/483/scripts/12983/sql-server-2012-server-sid ...
- SQL Server使用Offset/Fetch Next实现分页
T-SQL实现分页 ,查找指定范围内的数据 首先,正常的查询是这样的 使用分页后 select * from Products order by ProductID offset X rows fet ...
- SQL Server 2012使用Offset/Fetch Next实现分页
在Sql Server 2012之前,实现分页主要是使用ROW_NUMBER(),在SQL Server2012,可以使用Offset ...Rows Fetch Next ... Rows onl ...
- Sql Server 2012 的新分页方法分析(offset and fetch) - 转载
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...
- SQL Server 2012使用OFFSET/FETCH NEXT分页及性能测试
最近在网上看到不少文章介绍使用SQL Server 2012的新特性:OFFSET/FETCH NEXT 实现分页.多数文章都是引用或者翻译的这一篇<SQL Server 2012 - Serv ...
- Sql Server 2012 分页方法分析(offset and fetch)
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中 offse ...
- SQLServer · 最佳实践 · SQL Server 2012 使用OFFSET分页遇到的问题
1. 背景 最近有一个客户遇到一个奇怪的问题,以前使用ROW_NUMBER来分页结果是正确的,但是替换为SQL SERVER 2012的OFFSET...FETCH NEXT来分页出现了问题,因此,这 ...
- SQL Server 2012提供的OFFSET/FETCH NEXT与Row_Number()对比测试(转)
原文地址:http://www.cnblogs.com/downmoon/archive/2012/04/19/2456451.html 在<SQL Server 2012服务端使用OFFSET ...
- SQL Server 2012提供的OFFSET/FETCH NEXT与Row_Number()对比测试 [T]
SQL Server 2008中SQL应用系列--目录索引 前些天看到一篇文章<SQL Server 2012 - Server side paging demo using OFFSET/FE ...
随机推荐
- PowerShell添加和部署WSP
SharePoint PowerShell在SharePoint Product列表里边,然后以管理员权限启动. 1. 添加Solution 到 SharePoint Farm. Add-SPSolu ...
- JQuery - Tab Control
http://jqueryui.com/tabs/ <!doctype html> <html lang="en"> <head> <me ...
- spark 与 Hadoop 融合后 Neither spark.yarn.jars nor spark.yarn.archive is set
参考文献: http://blog.csdn.net/lxhandlbb/article/details/54410644 每次提交Spark任务到yarn的时候,总会出现uploading reso ...
- .Protobuf,GRpc,Maven项目出现UnsatisfiedDependencyException、ClassNotFoundException、BuilderException等异常
异常如下: Error starting ApplicationContext. To display the auto-configuration report re-run your applic ...
- 区间DP Zoj 3537 Cake 区间DP 最优三角形剖分
下面是别人的解题报告的链接,讲解很详细,要注意细节的处理...以及为什么可以这样做 http://blog.csdn.net/woshi250hua/article/details/7824433 我 ...
- (2)流程控制(for循环、if...else判断、while循环)
for循环 for item in names: #结构语法 print(item) for循环嵌套for循环 for循环配合range()可以直接指定要打印的数量 例:打印一个金字塔 for i ...
- ubuntu 远程gui显示
图像从定向: ubuntu 显示系统xterm 重点是设置DISPLAY variable以及保证ubuntu和suse在同一网段即相互ping通,利用ssh -XY的方式重定向图像. 1.直接ss ...
- smarty学习——内建函数 部分
Smarty自带一些内建函数. 内建函数是模板语言的一部分. 用户不能创建名称和内建函数一样的自定义函数,也不能修改内建函数. 一.包含的内建函数 {$var=...}{append}{assign} ...
- 在CentOS和RHEL中配置SNMPv3
首先,使用yum安装必要的软件 [root@server ~]# yum install net-snmp-utils net-snmp-devel安装完成之后, 先停止snmpd,再创建具有只读属性 ...
- 01.ubuntu16.06编译安装Hi3518EV200 SDK
转载,侵删 HI3518EV200 SDK安装并编译osdr. 1.开发环境 windows10电脑 + 虚拟机14 Pro + Ubuntu16.0.4 2.拷贝并解压.将 Hi3518E_SDK_ ...