原文: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 添加了另外一种更简单高效的分页方式。

  1. /*
  2. 执行脚本去创建这个表并插入数据。
  3. */
  4. IF OBJECT_ID('Customers','U') IS NOT NULL
  5. DROP TABLE Customers
  6. CREATE TABLE Customers (
  7. CustomerID INT,
  8. CustomerNumber CHAR(4),
  9. CustomerName VARCHAR(50),
  10. CustomerCity VARCHAR(20) )
  11. GO
  12. INSERT INTO Customers (
  13. CustomerID, CustomerNumber, CustomerName, CustomerCity
  14. )
  15. SELECT
  16. Number,
  17. REPLACE(STR(Number, 4), ' ', '0'),
  18. 'Customer ' + STR(number,6),
  19. CHAR(65 + (number % 26)) + '-City'
  20. FROM master..spt_values WHERE type = 'p'
  21. AND number BETWEEN 0 AND 999
  22. /*
  23. 用ROW_NUMBER()的分页示例- SQL Server 2005/2008 版本。
  24. */
  25. DECLARE @page INT, @size INT
  26. SELECT @page = 3, @size = 10
  27. ;WITH cte AS (
  28. SELECT TOP (@page * @size)
  29. CustomerID,
  30. CustomerName,
  31. CustomerCity,
  32. ROW_NUMBER() OVER(ORDER BY CustomerName ) AS Seq,
  33. COUNT(*) OVER(PARTITION BY '') AS Total
  34. FROM Customers
  35. WHERE CustomerCity IN ('A-City','B-City')
  36. ORDER BY CustomerName ASC
  37. )
  38. SELECT
  39. *
  40. FROM cte
  41. WHERE seq BETWEEN (@page - 1 ) * @size + 1 AND @page * @size
  42. ORDER BY seq
  43. /*
  44. SQL Server 2012中新添加的分页示例
  45. */
  46. DECLARE @page INT, @size INT
  47. SELECT @page = 3, @size = 10
  48. SELECT
  49. *,
  50. COUNT(*) OVER(PARTITION BY '') AS Total
  51. FROM Customers
  52. WHERE CustomerCity IN ('A-City','B-City')
  53. ORDER BY CustomerID
  54. OFFSET (@page -1) * @size ROWS
  55. FETCH NEXT @size ROWS ONLY;
  56. /*
  57. 同时执行这两个版本,打开执行计划,你可以注意到在这个例子中显著的性能差异。
  58. */

SQL Server 2012 OFFSET/FETCH NEXT分页示例相关推荐

  1. 一起玩转SQL Server 2012 下的分析服务

    转载自:https://blog.csdn.net/aspnetx/article/details/8712286 提到SQL Server 2012的分析服务,那么不得不先说下商业智能,它是一个由数 ...

  2. Sql Server 2012 分页方法分析(offset and fetch)

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中  offse ...

  3. 安装SQL Server 2012示例数据库

    SQL Server的示例数据库是一个非常好的学习数据库的范例,在安装完SQL Server 2012后,默认情况下是不会安装示例数据库的,我们需要自己进行一些安装和设置. 安装Adventure W ...

  4. SQL Server 2012 显式授权示例

    一.概述 1.GRANT 将安全对象的权限授予主体. 2.DENY 拒绝授予主体权限.防止主体通过其组或角色成员身份继承权限. 3.REVOKE 取消以前授予或拒绝了的权限. 二.示例 SQL Ser ...

  5. Sql Server RowNumber和表变量分页性能优化小计

    直接让代码了,对比看看就了解了 当然,这种情况比较适合提取字段较多的情况,要酌情而定 性能较差的: WITH #temp AS ( Select column1,column2,column3,col ...

  6. 《T-SQL性能调优秘笈——基于SQL Server 2012 窗口函数》——1.1 窗口函数的背景...

    本节书摘来自异步社区出版社<T-SQL性能调优秘笈--基于SQL Server 2012 窗口函数>一书中的第1章,第1.1节,作者: [美]Itzik Ben-Gan,更多章节内容可以访 ...

  7. 微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍...

    在SSDT中部署一个 SSAS 项目到本地服务器上出现错误. You cannot deploy the model because the localhost deployment server i ...

  8. 使用 SQL Server 2012 Analysis Services Tabular Mode 表格建模 图文教程

    原文 http://www.cnblogs.com/biwork/archive/2013/05/22/3093896.html BI Work 使用 SQL Server 2012 Analysis ...

  9. SQL Server 2012入门T-SQL基础篇:(1)环境准备

    此系列只是针对介绍T-SQL,对环境系统不做具体的讲解,请参考官方网站查看SQL SERVER 2012对硬件和系统的具体要求,参考网址 (1)到官方网站下载SQL SERVER 2012 (2)为减 ...

最新文章

  1. 小白也能看懂的Matplotlib简明教程
  2. Enterprise Library 3.0 体验(3):使用配置文件的Validation Application Block
  3. 043_集合重要知识点
  4. 项目管理九大知识体系:
  5. 2层框架结构柱子间距_2分钟掌握五种不同类型的厂房结构,找厂房少绕弯!
  6. 心灵战争服务器维护,心灵战争服务器异常产生哪些问题如何解决_心灵战争服务器异常产生问题及解决方法_玩游戏网...
  7. 项目立项管理:项目可行性分析和项目审批
  8. mysql 性能问题_mysql 性能问题
  9. QT 简单应用之播放WAV声音
  10. re2020 bt2020_如何在2020年选择最佳博客平台(比较)
  11. VMware与xshell安装教程
  12. android 文件管理器 apk,Android6.0自带文件管理器无法打开apk文件
  13. 微信发红包测试用例设计
  14. n*n蛇形方阵的输出
  15. PA2.2 PA2.3
  16. Ubuntu wine QQ 微信乱码
  17. Android 跳转外部浏览器坑
  18. 安全加解密引擎基础(ECC、ECDH)
  19. iOS开发关于block和局部变量和全局变量
  20. 二个数据库之间怎么同步

热门文章

  1. 二进制,十进制,十六进制
  2. 如何利用azMan (Authorization Manager) 实现 role-based的安全验证机制
  3. 事务隔离机制原理深入分析以及MySQL不同隔离级别分场景下实验对比
  4. 网络模型 - 随机网络,无标度网络,分层网络
  5. 四层和七层交换技术-loadbalance
  6. Tcpdump命令的使用与示例——linux下的网络分析
  7. 仿照redis写的nginx开机画面
  8. 【Qt】Qt动态库和静态库的创建和使用
  9. webkit内核 css,纯CSS改变webkit内核浏览器的滚动条样式
  10. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?