博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlServer 2012/2014新增Offset,Fetch Next分页方式
阅读量:7047 次
发布时间:2019-06-28

本文共 879 字,大约阅读时间需要 2 分钟。

hot3.png

一、Offset Fetch Next的用法

sql2012的新分页方式 OFFSET/FETCH NEXT

语法:

OFFSET=偏移,跳过 rowsFETCH = 取  rows only

1.越过1万条,去除50条

SELECT ShopName from Shop  ORDER BY ShopName   OFFSET 100000 ROW  FETCH NEXT 50 ROW ONLY

2.仅使用Offset 跳过

SELECT ShopName from Shop  ORDER BY ShopName   OFFSET 100000 ROW

二、Offset Fetch next 的性能更好

1.使用Row_number() 方式分页

假装有个表Shop,其中有一列ShopName,取100000到100050条数据。

SELECT * FROM  (SELECT ShopName , ROW_NUMBER() OVER(ORDER BY ShopName)  as R  FROM Shop) t  WHERE R>100000 AND R<=100050

2.使用 Offset Fetch方式

SELECT ShopName from Shop  ORDER BY ShopName   OFFSET 100000 ROW  FETCH NEXT 50 ROW ONLY

比较:

之所以取十万条以后的数据,能明显看出执行时间上的差异。虽然前人们已经给出过很多论证,我这里还是贴一下比较结果。

先是ROW_NUMBER

 

再是 OFFSET FETCH  

高下立判,后者既高效又好写易懂有木有!

回顾SqlServer中分页方式的变化:

SqlServer2000时候使用top 的方式

SqlServer2005的时候开始使用Row_Number()

SqlServer2012的时候出现Offset Fetch Next。

更多:

转载于:https://my.oschina.net/tianma3798/blog/917298

你可能感兴趣的文章
导航菜单
查看>>
asp.net导出excel及科学计数问题
查看>>
[转]ASP.NET MVC 入门4、Controller与Action
查看>>
自动下载
查看>>
程序猿必须进行的10项投资
查看>>
$.each 和$(selector).each()的差别
查看>>
配置yum,nc,telnet
查看>>
Git使用教程
查看>>
HDU 1051:Wooden Sticks
查看>>
C#笔记
查看>>
网页返回顶部浮动图标代码
查看>>
京东手机webapp商城
查看>>
POSIX 消息队列 之 参数说明
查看>>
【IOS】Target membership
查看>>
20141123
查看>>
EF架构~EF6配置需要注意的几个地方
查看>>
Android英文文档翻译系列(4)——PopupWindow
查看>>
SQL_sql的简单查询
查看>>
详解CSS网页布局中默认字体样式
查看>>
【2012.1.24更新】不要再在网上搜索eclipse的汉化包了!
查看>>