SqlServer2012中LEAD函数简单分析_MsSql

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sqlserver2012
lead
mssqlserver、mssqlserver2005下载、mssqlserver2005 64位、mssqlserver2008下载、mssqlserver无法启动,以便于您获取更多的相关知识。

时间: 2024-08-02 17:21:19

SqlServer2012中LEAD函数简单分析_MsSql的相关文章

SqlServer2012中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 UNI

SqlServer2012中First_Value函数简单分析_MsSql

First_Value返回结果集中某列第一条数据的值,跟TOP 1效果一样,比较简单的一个函数 先贴测试用代码 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.78

SqlServer2012中First_Value函数简单分析

First_Value返回结果集中某列第一条数据的值,跟TOP 1效果一样,比较简单的一个函数 先贴测试用代码 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.78

javascript中eval函数用法分析

  javascript中eval函数用法分析         这篇文章主要介绍了javascript中eval函数用法,实例分析了javascript中eval函数的使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例分析了javascript中eval函数用法.分享给大家供大家参考.具体分析如下: eval()只有一个参数,如果传入的参数不是字符串,则直接返回这个参数.否则会将字符串当成js代码进行编译,如果编译失败则抛出语法错误(SyntaxError)异常.如果编译成功则开始执行这

php中array_column函数简单实现方法_php技巧

本文实例讲述了php中array_column函数简单实现方法.分享给大家供大家参考,具体如下: php中的array_column()可返回输入数组中某个单一列的值. 示例: <?php // 从数据库中返回数组: $a = array( array( 'id' => 0015, 'age' => '20', 'name' => 'Tom', ), array( 'id' => 0016, 'age' => '21', 'name' => 'Jack', ),

php中filter_input函数用法分析_php技巧

本文实例分析了php中filter_input函数用法.分享给大家供大家参考.具体分析如下: 在 php5.2 中,内置了filter 模块,用于变量的验证和过滤,过滤变量等操作,这里我们看下如何直接过滤用户输入的内容. fliter 模块对应的 filter_input 函数使用起来非常的简单,例如我们过滤用户输入名为 sample 的 get 参数为整型,那么可以这样写: 复制代码 代码如下: filter_input(input_get, "sample", filter_san

php中rename函数用法分析_php技巧

本文实例分析了php中rename()函数用法.分享给大家供大家参考.具体如下: php filesystem 函数,rename() 函数重命名文件或目录,若成功,则该函数返回 true.若失败,则返回 false. 语句:rename(oldname,newname,context) 参数 描述 oldname 必需,规定要重命名的文件或目录. newname 必需,规定文件或目录的新名称 context 必需,规定文件句柄的环境,context 是可修改流的行为的一套选项 注释:在 php

python中dir函数用法分析_python

本文实例讲述了python中dir函数用法.分享给大家供大家参考.具体分析如下: dir 函数返回任意对象的属性和方法列表, 包括模块对象.函数对象.字符串对象.列表对象.字典对象 ...... 相当多的东西. dir函数示例: >>> li = [] >>> dir(li) ['append','count','extend','index','insert', 'pop','remove','reverse','sort'] >>> d = {}

PHP中SimpleXML函数用法分析_php技巧

本文实例讲述了关于php中SimpleXML 函数的用法,此函数是允许您把 XML 转换为对象,分享给大家供大家参考.具体分析如下: SimpleXML 函数允许您把 XML 转换为对象,通过普通的属性选择器或数组迭代器,可以处理这个对象,就像处理任何其他对象一样.其中的一些函数需要最新的 PHP 版本. 安装:SimpleXML 函数是 PHP 核心的组成部分,无需安装即可使用这些函数,代码如下: 复制代码 代码如下: <?php  //以对象形式返回所有内容  $lib = simplexm