SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法
2023-09-11 14:14:06 时间
写法:
假装有个表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
高下立判,后者既高效又好写易懂有木有!
私人小笔记:
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中JOIN的用法
- 基于SQL Server数据库搭建主从复制实现读写分离实战演练
- java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: service-one
- SQL SERVER 2012启动失败 because upgrade step 'SSIS_hotfix_install.sql' 失败
- SQL Server命令行
- SQL Server基础Sql语句复习
- SQL Server实现 LeetCode 176 第二高的薪水
- SQL server 常用的数据库 DDL语言
- SQL Server数据库专用管理员DAC连接方式
- org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or br
- [Angular] Improve Server Communication in Ngrx Effects with NX Data Persistence in Angular
- MySQL提示:The server quit without updating PID file问题的解决办法
- SQL Server replication requires the actual server name to make a connection to the server.错误解决
- 在SQL Server里查看当前连接的在线用户数_相约在明天_新浪博客
- 【Teradata SQL】数据库中查询 一个字段包含另一个字段sql
- SQL Server 2008 R2——ROW_NUMBER() 去掉不同行中相同列的重复内容
- [MEAN Stack] First API -- 7. Using Route Files to Structure Server Side API
- SQL Server学习笔记
- Sql Server 2008完全卸载方法(其他版本类似)
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- 获取application server 主机名(host name)和端口号(port)的FM TH_GET_VIRT_HOST_DATA
- how is my real odata request hijacked by Mock server
- SQL Server 2008 R2 新建用户并指定该用户的数据库
- Sql Server中sql语句自动换行
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- sql server判断某个表是否存在
- Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014
- 成功解决:连接sql server时插入数据库内容为乱码,并且输出也为乱码
- Database之SQL:自定义创建数据库的各种表demo集合(以方便理解和分析sql的各种增删改查语法的具体用法)
- Python 连接SQL Server数据库 - pymssql使用基础
- Ubuntu上安装sql server
- Sql Server通过ip+端口远程链接方法
- SQL Server存储过程
- SQL Server-【知识与实战VIII】触发器(中)
- SQL Server 数据库切换“sa”账户登录
- 【SQL Server】数据库开发指南(一)数据库设计