当前位置:  数据库>mysql

SqlServer2012中LEAD函数简单分析

    来源: 互联网  发布时间:2014-10-17

    本文导语:  LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本 DECLARE @TestData TABLE( ID INT IDENTITY(1,1), Department VARCHAR(20), LastName VARCHAR(20), Rate FLOAT ) INSERT INTO @TestData(Departm...

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


    
 
 

您可能感兴趣的文章:

  • 浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解
  • 一个函数解决SQLServer中bigint 转 int带符号时报错问题
  • SQLServer EVENTDATA()函数来获取DDL 触发器信息
  • sqlserver substring函数使用方法小结
  • sqlserver中的自定义函数的方法小结
  • SqlServer2012中First_Value函数简单分析
  • sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
  • SQLSERVER ISNULL 函数与判断值是否为空的sql语句
  • SQLServer CONVERT 函数测试结果
  • SQLServer中的切割字符串SplitString函数
  • sqlserver 快速生成汉字的首拼字母的函数(经典)
  • SQLserver中用convert函数转换日期格式的方法
  • Sqlserver 常用日期时间函数
  • sqlserver 根据汉字获取拼音的函数
  • sqlserver Case函数应用介绍
  • sqlserver 各种判断是否存在(表名、函数、存储过程等)
  • sqlserver CONVERT()函数用法小结
  • 存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)
  • sqlserver 函数、存储过程、游标与事务模板
  • 谈谈sqlserver自定义函数与存储过程的区别
  • SQLServer中master数据库分析
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • sqlserver中with(nolock)深入分析
  • Sqlserver中char,nchar,varchar与Nvarchar的区别分析
  • 利用脚本自动安装SQLServer的实现步骤分析
  • SQLServer 2005 实现数据库同步备份 过程-结果-分析
  • SQLSERVER 中datetime 和 smalldatetime类型分析说明
  • SQLSERVER收集语句运行的统计信息并进行分析
  • SQLServer中临时表与表变量的区别分析
  • SQLServer 连接失败错误故障的分析与排除
  • sqlserver 高性能分页实现分析
  •  
    本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 连接sqlserver的url是jdbc:microsoft:sqlserver://192.168.0.100:1433,他连那一个数据库呢?
  • (100分)用Microsoft jdbc Driver for sqlserver2000(type4)访问sqlserver2k的问题,help!
  • 通过SQLSERVER重启SQLSERVER服务和计算机的方法
  • 怎样用文JDBC for sqlserver访问SQLSERVER 数据库请大侠给出一个完整的程序代码
  • (100分)jdbc连接sqlserver 200出错.[SQLServer 2000 Driver for JDBC]Error establishing socket.
  • 如何连接sqlserver2000数据库
  • 深入JDBC sqlserver连接写法的详解
  • how to 连接到sqlserver2000?
  • 请问如何直接sqlserver?
  • SQLServer JDBC Driver
  • 在sqlserver2000时中文问题。
  • 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
  • 如何使用JSP 连接SQLSERVER数据库,请不吝赐教!(在线等,急救!)
  • 简单实现SQLServer转MYSQL的方法
  • 求助!SQLServer2000 JDBC Driver 不能加载?
  • Resin+Jsp+Sqlserver2000的问题!在线等候!
  • applet用jdbc链接SQLServer 2000的问题
  • 请问连接SQLServer 的驱动器是什么呢?
  • jdbc:microsoft:sqlserver://localhost:1433;DatabaseNameOPTIONAL=webmail???
  • 如何用SQLServer2k-JDBC连接数据库?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号