摘要:

下文讲述sqlserver 2012中 lag、lead分析函数的用法及简介

实验环境: sqlserver 2012

lag、lead:

可以不通过联结的形式获取上下相邻(指定偏移量)行的指定列的数据

lag 向前指定数据

lead向后指定数据

——————–

lag、lead参数说明:

参数1:列名

参数2:偏移量offset

参数3:进行偏移量计算后,无法得到结果时的缺省值

例:

lag分析函数举例说明

declare @test table(keyId int,info varchar(20),qty int)

insert into @test (keyId,info,qty)values(-1,'a',2)

insert into @test (keyId,info,qty)values(1,'a',2)

insert into @test (keyId,info,qty)values(2,'a',10)

insert into @test (keyId,info,qty)values(3,'b',8)

insert into @test (keyId,info,qty)values(3,'b',8)

insert into @test (keyId,info,qty)values(5,'d',8)

insert into @test (keyId,info,qty)values(6,'b',9)

/*

例: lag 在info群组中,

向前偏移一行, 无法找到值时,使用默认值"-9"

keyId=-1 在info ='a'群组中,向前偏移一行,无数据,所以为默认值-9

keyId=1 在info ='a'群组中,向前偏移一行,上一行数据为-1 所以显示-1

keyId=2 在info ='a'群组中,向前偏移一行,上一行数据为-1 所以显示-1

keyId=3 在info ='b'群组中,向前偏移一行,无数据,所以为默认值-9

keyId=3 在info ='b'群组中,向前偏移一行,上一行数据为-1 所以显示3

keyId=6 在info ='b'群组中,向前偏移一行,上一行数据为-1 所以显示3

keyId=5 在info ='d'群组中,向前偏移一行,无数据,所以为默认值-9

*/

select *,

lag(keyId,1,'-9') over(partition by info order by keyId) as lagInfo

from @test

mssql_sqlserver_lag详解举例-1

—————————————

mssql_sqlserver_lag详解举例-2

lead分析函数举例说明

lead 向后查找指定列数据,作为返回值,同lag的唯一区别为:查找方向不一样

declare @test table(keyId int identity,info varchar(20),qty int)

insert into @test (info,qty)values('a',2)

insert into @test (info,qty)values('a',2)

insert into @test (info,qty)values('a',10)

insert into @test (info,qty)values('b',8)

insert into @test (info,qty)values('b',8)

insert into @test (info,qty)values('d',8)

insert into @test (info,qty)values('b',9)

select *,

lead(keyId,1,'-9') over(order by keyId) as lagInfo

from @test

mssql_sqlserver_lead详解举例-1

oracle lag使用情景,lag函数用法相关推荐

  1. Oracle数据库Bitand()函数用法(计算位移)

    由于项目需要,经理要求我做一个可多选的下拉选框.我一听,so easy, 于是屁颠屁颠跑回座位,然后想想如何方便顺序的解决掉这个问题. 思路如下:为了简化,有字典表 (表 T1) 另外还有张表需要用到 ...

  2. mysql lag over_lag函数(lag函数用法)

    SELECT lag(task_id, 1, null) over(PARTITION BY *** ORDER BY ***), lead(task_id, 1, null) over(PARTIT ...

  3. php instr函数,oracle的instr函数用法

    这几天在做一个项目的时候,做到关于用户组权限分配的问题,用到了Oracle的instr函数,现在好好学习下这个函数吧. 在Oracle/PLSQL中, instr 函数返回要截取的字符串在源字符串中的 ...

  4. oracle易忘函数用法(1)

    一般的to_char是这样用的to_char(sysdate,'YYYY-MM-DD hh:mi:ss AM') ,也有几个突出点的用法: to_char(sysdate, 'dd') 查看今天是几号 ...

  5. oracle within的用法,Oracle的 listagg() WITHIN GROUP ()函数使用

    1.使用条件查询  查询部门为20的员工列表 -- 查询部门为20的员工列表 SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = '20 ...

  6. oracle 更新flwid,Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法

    今天工作过程中用到了Oracle的分析函数,在网上查到以下文章,转到这里,以备后用! Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法 ROW_NUMBER() OV ...

  7. oracle 的wecate函数,1.Oracle中decode()函数用法

    1.Oracle中decode函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻 ...

  8. oracle 天转换成月函数_oracle中to_date详细用法示例(oracle日期格式转换)

    TO_DATE格式(以时间:2007-11-02 13:45:25为例) 1. 日期和字符转换函数用法(to_date,to_char) select to_char(sysdate,'yyyy-mm ...

  9. oracle数据库 日期函数用法

    oracle数据库 日期函数用法 –Oracle trunc()函数的用法 /日期******/ 1.select trunc(sysdate) from dual --2013-01-06 今天的日 ...

最新文章

  1. 监控告警满飞天,Netflix 运维如何做到在家睡到自然醒...
  2. docker svn
  3. 程序异常异常代码: 0xc0000005_Java基础:看完这篇你还怕碰到异常吗?
  4. DWR学习笔记 - Hello World
  5. 华为机试HJ100:等差数列
  6. asp.net: 应用母版页的页面,如何设置其标题?
  7. FFmpeg总结(七)AV系列结构体之AVIOContext
  8. 关于select标签曾经踩过的几个坑!
  9. java 读取读取配置文件
  10. SQL 数据库 学习 033 视图
  11. word/wps 实用技巧: 批量改大纲标题样式
  12. w锋ndows用户组设置,第2章Wndows+Server+2008本地用户和组.ppt
  13. 记一次淘宝开放平台开通电商软件服务商ISV
  14. 西电和杭电计算机考研,名师张雪峰:中国有四个电子科技大学,有一个很特别,考研要注意...
  15. Anaconda安装
  16. 王伟storm_危机中复苏 2005年中国星际风云录
  17. java多线程 wait和notify方法
  18. 大数据证实:学习使人快乐
  19. Excel取当前工作表名称
  20. JAVA获取优酷、土豆、酷6等视频实例

热门文章

  1. 2021-11-28 Misc 杂项略览 一 图片隐写1 直接隐写【T.O.CTF】
  2. 解读redis的配置文件--redis.conf
  3. TCP协议-TCP连接管理
  4. 2023重庆邮电大学计算机考研信息汇总
  5. ca机构将会被区块链取代
  6. 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
  7. cmd - 切换目录命令cd失效(切换目录失效)
  8. Linux进程亲族关系图
  9. 高可用集群下的负载均衡(7):haproxy + keepalived 实现高可用负载均衡
  10. java 中free,FreeJava 的使用方法(三)FreeJava的使用,freejava使用方法