[MSSQL2012]LEAD函数
LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本
DECLARE @TestData TABLE(
ID INT IDENTITY(1,1),
Department VARCHAR(20),
LastName VARCHAR(20),
Rate FLOAT
)
INSERT INTO @TestData(Department,LastName,Rate)
SELECT 'Document Control','Arifin',17.7885 UNION ALL
SELECT 'Document Control','Norred',16.8269 UNION ALL
SELECT 'Document Control','Kharatishvili',16.8269 UNION ALL
SELECT 'Information Services','Chai',10.25 UNION ALL
SELECT 'Information Services','Berge',10.25 UNION ALL
SELECT 'Information Services','Trenary',50.4808 UNION ALL
SELECT 'Information Services','Conroy',39.6635 UNION ALL
SELECT 'Information Services','Ajenstat',38.4615 UNION ALL
SELECT 'Information Services','Wilson',38.4615 UNION ALL
SELECT 'Information Services','Connelly',32.4519 UNION ALL
SELECT 'Information Services','Meyyappan',32.4519
SELECT * FROM @TestData
以上是原始数据,下边应用LEAD函数,看下怎么把其它行的数据提取到当前行显示的
可以看到,LEAD函数把ID为2的那一行的LastName值提取到第一行显示为新列NEXTUser,就这么个功能
下边这个是间隔两行提取数据,就是把第三行的数据提取到当前行,其它行以次累推,看图
这个函数一共接受三个参数,第一个是表达式,以上示例都使用的字段,还可以是其它有效的表达式,第二个参数是offset,即间隔多少行取数据,第三个是默认的间隔,即当没有指定offset时以此为准
举个例子,以上述代码为例
LEAD(LastName,2,0)
当没有指定那个2的时候,则以间隔0行为准,当有指定那个2的时候则间隔2行取数据,所以,往往第三个参数可以不指定,效果是一样的,如下图
与LEAD函数相对应的还有一个函数,LAG,看下图效果
如上图所示,这个函数是从上行取数据,其它间隔参数的意义一样,LEAD是从下行取数据,TAG相反是上行取数据,写到这里我就再想,如果指定负数,是不是就可以合并为一个函数了?试下想法:
报错,offset参数不能为负,哥不作评论,,,The End
[MSSQL2012]LEAD函数的更多相关文章
- ORACLE lag()与lead() 函数
一.简介 lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤.这种 ...
- SQL Server 2012中LEAD函数简单分析
LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本 DECLARE @TestData TABLE( ID INT IDENTITY(1,1), Dep ...
- oracle listagg函数、lag函数、lead函数 实例
Oracle大师Thomas Kyte在他的经典著作中,反复强调过一个实现需求方案选取顺序: “如果你可以使用一句SQL解决的需求,就使用一句SQL:如果不可以,就考虑PL/SQL是否可以:如果PL/ ...
- lead 函数和 lag函数
这两个函数的作用只能通过例子来解释,否则说不明白. 首先创建一个表 SQL> create table test (id number, name varchar2(8), val number ...
- pandas实现hive的lag和lead函数 以及 first_value和last_value函数
lag和lead VS shift 该函数的格式如下: 第一个参数为列名, 第二个参数为往上第n行(可选,默认为1), 第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL ...
- KingbaseES lag 和 lead 函数
1.简介 lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤. 2 ...
- [MSSQL2012]First_Value函数
First_Value返回结果集中某列第一条数据的值,跟TOP 1效果一样,比较简单的一个函数 先贴测试用代码 DECLARE @TestData TABLE( ID INT IDENTITY ...
- [MSSQL2012]CUME_DIST函数
CUME_DIST函数以某列作为基准,计算其它行相对于基准行数据的比例.差距比例,比较容易理解 先看下测试数据 DECLARE @TestData TABLE( ID INT IDENTITY ...
- SQL LEAD()函数 LAG()函数
lag ,lead 分别是向前,向后:lag 和lead 有三个参数,第一个参数是列名,第二个参数是偏移的offset,第三个参数是 超出记录窗口时的默认值) SQL> select id,na ...
随机推荐
- bootstrap分页插件--Bootstrap Paginator的使用&AJAX版备份(可单独使用)
html部分: <ul class="pagination"></ul> <!--bootstrap3版本用ul包裹--> <div cl ...
- oracle sql优化
整理一下网上所看到sql优化方法 1.使用大写字母书写sql,因为oracle解释器会先将sql语句转换成大写后再解释 2 减少访问数据库的次数,多数情况下一条sql可以达到目的的,就不要使用多 ...
- WebForm---登陆状态保持(Cookies内置对象)
登录状态保持: 首先做一个登录界面,点击 登录按钮 protected void Page_Load(object sender, EventArgs e) { Button1.Click += Bu ...
- {C#}{GDI+}各种C#,GDI+的资料
GDI+各种功能: http://www.cnblogs.com/08shiyan/category/253906.html 字体:http://blog.sina.com.cn/s/blog_7c7 ...
- Linux内核分析第一周学习总结:计算机是如何工作的?
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.冯诺依曼体系 ...
- 使用 RecyclerView
使用 RecyclerView android RecyclerView tutorial 概述 与 ListView 的对比 RecyclerView 的组件 LayoutManager Recyc ...
- SQL Server AlwaysOn架构及原理
SQL Server AlwaysOn架构及原理 SQL Server2012所支持的AlwaysOn技术集中了故障转移群集.数据库镜像和日志传送三者的优点,但又不相同.故障转移群集的单位是SQL实例 ...
- ContentProvider 增删改查通讯录
一.通讯录应用介绍 通讯录应用是Android自带的应用程序,我们看到此应用的时候,可能只认为这是一个应用,用数据库存储数据,但是实际上不是这样的. 通讯录是ContentProvider的应用,通讯 ...
- plupload简易应用 多图片上传显示预览以及删除
<script> var uploader = new plupload.Uploader({ //实例化一个plupload上传对象 browse_button: 'btnBrowse' ...
- github 项目版本控制
1.申请github账号 2.安装github for windows工具 安装后就可以使用Git Bash打开特制的终端,在里面用来命令行了.喜欢Git命令行方式的朋友到这里就够了. 打开Git B ...