写法:

假装有个表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的用法(转)的更多相关文章

  1. SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法

    写法: 假装有个表Shop,其中有一列ShopName,取100000到100050条数据. ROW_NUMBER 的写法 SELECT * FROM ( SELECT ShopName , ROW_ ...

  2. SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑

    本文总结一下SQL SERVER 2012/2014链接到SQL SERVER 2000的各种坑,都是在实际应用中遇到的疑难杂症.可能会有人说怎么还在用SQL SERVER 2000,为什么不升级呢? ...

  3. 分享SQL Server 2012/2014内存数据库,AlwaysOn,参考教材与网上总结

    Sql Server 2012 高可用性的几种方案的比较,AlwaysOn优势何在 对Sql Server 2012 高可用性与灾难恢复的几种方案的比较,复制,集群,镜像优劣何在,新生技术Always ...

  4. SQLPrompt 6.3.0.354 完美破解 安装于 SQL Server 2012/2014

    SQL SERVER 2012格式化 SQL SERVER 2014格式化 SQLPrompt_6.4.0.641 破解版 百度云下载 迅雷下载 百度网盘下载 SQL Prompt 是一款拥有SQL智 ...

  5. SQL Server 2012 实现分页新语法

    最近一直在看SQL Server的书,不过看的都是基础的查询流,查询在工作中用到的最多,所以能正确地查询出想要的数据也是很重要的嘛. 在书上看到在SQL Server 2012新增了一种实现分页的查询 ...

  6. 升级到SQL Server 2012/2014时一些需要考虑的事项

    1. 使用Upgrade Adviser评估升级前需要解决的事情. https://msdn.microsoft.com/zh-cn/library/ms144256(v=sql.110).aspx ...

  7. sql server 2012使用新特性offset和fetch next完成分页操作

    1 select * from HumanResources.Department order by DepartmentID offset rows fetch next rows only; of ...

  8. SQL Server 2012 通用分页存储过程

    创建存储过程: USE [数据库名] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCedure [dbo].[Split ...

  9. SQL Server 2012使用OFFSET/FETCH NEXT分页及性能测试

    最近在网上看到不少文章介绍使用SQL Server 2012的新特性:OFFSET/FETCH NEXT 实现分页.多数文章都是引用或者翻译的这一篇<SQL Server 2012 - Serv ...

随机推荐

  1. Flexbox指南

    Flexbox布局(Flexible Box)模块旨在提供一个更加有效的方式制定.调整和分布一个容器里的项目布局,即使他们的大小是未知或者是动态的.(这里我们称为Flex). Flex布局主要思想是让 ...

  2. c# winform as3相互调用

    C#主要代码: 首先要添加COM组件-Shockwave Flash Object //接收flash发送过来的信息        private void axShockwaveFlash1_Fla ...

  3. 使用 GMap.NET 实现添加标注、移动标注功能。(WPF版)

    前言 在WPF嵌入地图,有两种方式: 浏览器方式:控件方式. 1)浏览器方式就是使用浏览器控件WebBrowser,设置好网址就行了.这种方式与地图的交互不太直接,需要懂html.javascript ...

  4. VS和Eclipse的调试功能哪个更强大?

    以前一直用VS 2012来调试C/C++代码,F5.F10.F11用起来甚是顺手,前面也写过一篇关于VS最好用的快捷键:Visual Studio最好用的快捷键(你最喜欢哪个), 所以对于调试C/C+ ...

  5. scala-02-基本数据类型-string-分支循环

    一, 基本数据类型 1, scala的数据类型和java类似, 不同的是scala中所有的类型都是引用类型的 Byte Short Int Long Char Float Double String ...

  6. Async异步编程入门示例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. JavaScript时间操作工具类

    /** * 时间操作工具类 * * @author zwq * */ var TimeFrameUtil = { /** * 格式化日期 * @param date {Date} 日期 * @para ...

  8. 精读JavaScript模式(一)

    一.前言 为什么读这本书? 其实做前端开发,一个需求给不同工作经验的人去做,只要完工时间不算苛刻,大家都是能实现的.功能实现虽然大致相同,但当我们回归代码去看实现方式,代码书写的美观程度,以及实现的方 ...

  9. android开发学习笔记系列(4)--android动态布局

    前言 在做一个有关苏果APP的项目中,但是fuck的是,我完全使用相对布局之后及线性布局之后发现坑爹的事情了,屏幕不能适配,这是多大的痛,意味着,必须使用相应的代码实现动态布局!呵呵,不做项目不知道, ...

  10. 版本管理(一)之Git和GitHub的区别(优点和缺点)

    Git 简介 https://www.yiibai.com/git/getting-started-git-basics.html Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或 ...