[转]SQL Server 2012 的 T-SQL 新功能 – 新的数据分析函数(LEAD、LAG)
当您需要在 SQL Server 中利用 T-SQL 比较结果集的每一列跟前一列或后一列的差异时,在过去可能需要利用 CURSOR 搭配临时表变量,或是透过递归 CTE 来达到这个效果,如今 SQL Server 2012 提供了两个分析用的函数(LEAD、LAG)来让您更容易进行 ROW LEVEL 数据比较。
- 以下程序代码用来示范如何透过 LEAD 函数来计算每一列与后一列的 c2 字段相差几天:
- 1: declare @t table
- 2: (
- 3: c1 int identity
- 4: ,c2 date
- 5: )
- 6:
- 7: insert into @t (c2)
- 8: select ''
- 9: union all
- 10: select ''
- 11: union all
- 12: select ''
- 13: union all
- 14: select ''
- 15: union all
- 16: select ''
- 17: union all
- 18: select ''
- 19:
- 20: select c1,c2
- 21: ,LEAD(c2) OVER (ORDER BY c2) as next_c2
- 22: ,DateDiff(day,c2,LEAD(c2) OVER (ORDER BY c2)) as diff
- 23: from @t
- 24: order by c2
执行结果:
- 以下程序代码用来示范如何透过 LAG 函数来计算每一列与前一列的 c2 字段相差几天:
- 1: declare @t table
- 2: (
- 3: c1 int identity
- 4: ,c2 date
- 5: )
- 6:
- 7: insert into @t (c2)
- 8: select ''
- 9: union all
- 10: select ''
- 11: union all
- 12: select ''
- 13: union all
- 14: select ''
- 15: union all
- 16: select ''
- 17: union all
- 18: select ''
- 19:
- 20: select c1,c2
- 21: ,LAG(c2) OVER (ORDER BY c2) as previous_c2
- 22: ,DateDiff(day,LAG(c2) OVER (ORDER BY c2),c2) as diff
- 23: from @t
- 24: order by c2
执行结果:
[转]SQL Server 2012 的 T-SQL 新功能 – 新的数据分析函数(LEAD、LAG)的更多相关文章
- SQL Server 2012 官方版 / SQL Server 2012下载
SQL Server是微软的一款专业免费的关系数据库管理工具, 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理服务,SQL Server 数据库引擎为关系型数据和结构化 ...
- SQL Server 2012启动时提示:无效的许可证数据,需要重新安装
因为手咸,觉得电脑没有VS 2010版本的软件,就把Microsoft Visual C++ 2010某个组件给卸载了. 然后打开Sql Server 2012,就开始报错. 重装之后,也还是报错,将 ...
- SQL SERVER 2012链接到SQL SERVER 2000的问题解决案例
前几天在在桦仔的SQLSERVER走起微信公众帐号看到一篇文章MS SQL Server2014链接MS SQL Server 2000,当时手机上囫囵吞枣看了个大概,知道是由于SQL SERVER ...
- SQL SERVER 2012 第三章 使用INSERT语句添加数据
INSERT [TOP (<expression>) [PERCENT] [INTO] <tabular object>[(column list)][OUTPUT <o ...
- Sql Server 2012 的新分页方法分析(offset and fetch) - 转载
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...
- SQL Server 2012 Managed Service Account
原创地址:http://www.cnblogs.com/jfzhu/p/4007472.html 转载请注明出处 (一)Windows服务使用的登陆帐号 Windows服务只有登录到某一帐户的情况下才 ...
- SQL SERVER 2012 从Enterprise Evaluation Edtion 升级到 Standard Edtion SP1
案例背景:公司从意大利购买了一套中控系统,前期我也没有参与其中(包括安装.实施都是第三方),直到最近项目负责人告诉我:前期谈判以为是数据库的License费用包含在合同中,现在经过确认SQL Serv ...
- SQL Server 2012 数据库笔记
慕课网 首页 实战 路径 猿问 手记 Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...
- 安装SQL Server 2012 『企业中文版』
安装 SQL Server 前,请详细参阅:计划安装SQL Server2012需求详细http://www.cnblogs.com/chhuang/p/3623198.html 安装 SQL Ser ...
随机推荐
- 如何在MyEclipse中将项目部署Tomcat
如果系统里面还没有配置Tomcat,请参照<Windows下如何配置tomcat环境变量>. 1.新建一个web project项目.如下: 效果如下: 2.编写一个实现Servlet接口 ...
- WIFI: N, Legacy and AC
N选项 N spec allows for 20MHz wide channels similar to previous specs but can also combine two 20MHz c ...
- CreateThread、_beginthreadex和AfxBeginThread .
创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢?参考了一些资料,写得都挺好的,这里做一些摘抄和整合. [参考1]CreateThread, AfxBeginThread,_begin ...
- HDUOJ---hello Kiki
Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【LeetCode】27. Remove Element (2 solutions)
Remove Element Given an array and a value, remove all instances of that value in place and return th ...
- WSDL格式
http://www.blogjava.net/charles/archive/2008/12/15/246368.html最近写Web service, 很多代码是用工具生成的,可以说只知其然,不知 ...
- WIN7下恼人的AppData——删除没用的缓存文件
今日.打开电脑,发现C盘可用容量居然变得非常小.认为非常是可疑,例如以下图所看到的: 最初的反应是电脑中毒了,于是使用360卫士.360杀毒对C盘查杀,由于明明记得C盘有40多G的可用空间才对.出现这 ...
- MYSQL 更改数据库data存储目录 创建用户 创建权限 设置远程访问的权限.
一. 怎么更改数据库data存储目录: 1. 安装MYSQL. 2. 切换到 C:\Program Files\MySQL\MySQL Server 5.6 3. 新建my.ini. 加入如下配置: ...
- Disable Oracle Automatic Jobs
By default, Oracle will run some maintance jobs every night. If you don't want to run those jobs, yo ...
- 【Android】12.4 利用Intent读取图库中的图片
分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 该示例演示如何从图库(Gallery)中读取图像并用ImageView将它显示出来. 二.示例-ch1203Rea ...