SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法(转)
写法:
假装有个表Shop,其中有一列ShopName,取100000到100050条数据。
ROW_NUMBER 的写法
SELECT * FROM
(
SELECT ShopName , ROW_NUMBER() OVER(ORDER BY ShopName) as R
FROM Shop
) t
WHERE R>100000 AND R<=100050
OFFSET,FETCH 的写法
SELECT ShopName from Shop
ORDER BY ShopName
OFFSET 100000 ROW
FETCH NEXT 50 ROW ONLY
比较:
之所以取十万条以后的数据,能明显看出执行时间上的差异。虽然前人们已经给出过很多论证,我这里还是贴一下比较结果。
先是ROW_NUMBER

再是 OFFSET FETCH

高下立判,后者高效、易懂、语法简洁有木有!
(但是听闻超过5000w条数据后,结果不好说,这个我还没试,手上的库一般到1000w就拆表了,有兴趣的可以试试哦,记得告诉我,咩哈哈哈)
私人小笔记:
OFFSET=偏移,跳过
FETCH = 取
另外OFFSET可以单独使用,如下,既跳过前十万条:
SELECT ShopName from Shop
ORDER BY ShopName
OFFSET 100000 ROW
题外话:
从 SQL SERVER 2000 那个大家还在写TOP的年代,到2005的ROW_NUMBER,再到2012的OFFSET FETCH
SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法(转)的更多相关文章
- SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法
写法: 假装有个表Shop,其中有一列ShopName,取100000到100050条数据. ROW_NUMBER 的写法 SELECT * FROM ( SELECT ShopName , ROW_ ...
- SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
本文总结一下SQL SERVER 2012/2014链接到SQL SERVER 2000的各种坑,都是在实际应用中遇到的疑难杂症.可能会有人说怎么还在用SQL SERVER 2000,为什么不升级呢? ...
- 分享SQL Server 2012/2014内存数据库,AlwaysOn,参考教材与网上总结
Sql Server 2012 高可用性的几种方案的比较,AlwaysOn优势何在 对Sql Server 2012 高可用性与灾难恢复的几种方案的比较,复制,集群,镜像优劣何在,新生技术Always ...
- SQLPrompt 6.3.0.354 完美破解 安装于 SQL Server 2012/2014
SQL SERVER 2012格式化 SQL SERVER 2014格式化 SQLPrompt_6.4.0.641 破解版 百度云下载 迅雷下载 百度网盘下载 SQL Prompt 是一款拥有SQL智 ...
- SQL Server 2012 实现分页新语法
最近一直在看SQL Server的书,不过看的都是基础的查询流,查询在工作中用到的最多,所以能正确地查询出想要的数据也是很重要的嘛. 在书上看到在SQL Server 2012新增了一种实现分页的查询 ...
- 升级到SQL Server 2012/2014时一些需要考虑的事项
1. 使用Upgrade Adviser评估升级前需要解决的事情. https://msdn.microsoft.com/zh-cn/library/ms144256(v=sql.110).aspx ...
- sql server 2012使用新特性offset和fetch next完成分页操作
1 select * from HumanResources.Department order by DepartmentID offset rows fetch next rows only; of ...
- SQL Server 2012 通用分页存储过程
创建存储过程: USE [数据库名] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCedure [dbo].[Split ...
- SQL Server 2012使用OFFSET/FETCH NEXT分页及性能测试
最近在网上看到不少文章介绍使用SQL Server 2012的新特性:OFFSET/FETCH NEXT 实现分页.多数文章都是引用或者翻译的这一篇<SQL Server 2012 - Serv ...
随机推荐
- Vue源码翻译之组件初始化。
废话不多说. 我们先来看看Vue的入口文件. import { initMixin } from './init' import { stateMixin } from './state' impor ...
- PHP之高性能I/O框架:Libevent(二)
Event扩展 Event可以认为是替代libevent最好的扩展,因为libevent已经很久不更新了,而Event一直在更新,而且Event支持更多特性,使用起来也比libevent简单. Eve ...
- TensorFlow-实战Google深度学习框架 笔记(上)
TensorFlow TensorFlow 是一种采用数据流图(data flow graphs),用于数值计算的开源软件库.在 Tensorflow 中,所有不同的变量和运算都是储存在计算图,所以在 ...
- [转]Magento 2 and 1 Million Products
本文转自:https://www.goivvy.com/blog/magento-2-1-million-products Can Magento 2 handle 1 million product ...
- string类型与ASCII byte[]转换
1. string类型转成 ASCII byte[]: byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str ); 例:" ...
- WebForm 【简单控件】【表单元素】
一.HTML 表单元素复习 (1)文本类 文本框:<input type="text" name="" id="" value=&qu ...
- [PHP] B2B2C商品模块数据库设计
/**************2016年4月25日 更新********************************************/ 知乎:产品 SKU 是什么意思?与之相关的还有哪些? ...
- jstl 中无法使用EL语句。异常信息:According to TLD or attribute directive in tag file, attribute value does not accept any expressions
JSTL 标签库的有两种 taglib 伪指令, 其中 RT 库即是依赖于 JSP 传统的请求时属性值, 而不是依赖于 EL 来实现: 只要将 <%@ taglib uri="http ...
- java - 线程等待与唤醒
Java多线程系列--“基础篇”05之 线程等待与唤醒 概要 本章,会对线程等待/唤醒方法进行介绍.涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. w ...
- jQuery通用的全局遍历方法$.each()用法实例
1.jQuery通用的全局遍历方法$.each()用法 2. test.json文件代码: 3. html代码 4.jQuery代码 <script src="jquery-1.3.1 ...