[Oracle]Lead和Lag偏移量函数使用详解
Oracle有两个函数:LEAD和LAG,这两个函数都是用来计算偏移量的分析函数,这两个函数的用法相同。 Oracle官方文档解释是:
LEAD函数是一个分析函数,它可以在不用自连接的情况下,同时访问一个表的多行数据。查询返回的一系列的数据行和游标,LEAD函数在当前位置上根据偏移量访问该表中的另一行数据。 我们结合查询的示例,来看看这个函数的具体用法 1、lead函数首先根据 DEPTNO 部门分组并按照 HIREDATE 进行排序,NEXT_HIREDATE表示HIREDATE的下一个偏移量(偏移量默认为1)。 比如ALLEN的HIREDATE是"1981-2-20",那么ALLEN的NEXT_HIREDATE的值就是"1981-2-22"(即WARD的HIREDATE值); 同样的,WARD的HIREDATE值是"1981-2-22",那么WARD的NEXT_HIREDATE值是"1981-5-1"(即BLAKE的HIREDATE值); 最后JAMES找不到下一个偏移量,所以NEXT_HIREDATE的默认值就是NULL。 [sql] view plain copy
2、上面的查询也可以不加partition by --2、不包含partitionby的lead函数3、Oracle 11g增强LEAD和LAG函数的语法,加入了{ 由于7698-BLAKE的HIREDATE的值为空,所有MARTIN的NEXT_HIREDATE的值也为空,系统默认的是RESPECT NULLS,添加IGNORE NULLS后的结果如下。 lead(e.hiredateignorenulls)over(partition
新增的IGNORE NULLS功能,可以忽略NULL结果,去寻找另一个满足条件的结果。 4、偏移量决定查询时向前或后便宜N个位置,函数的默认偏移量为1,我们也可以修改为自定义的偏移量。 --4、偏移量offset,默认值=1,手动设置为2 5、LEAD的偏移量如果超出了表的范围,则DEFAULT默认返回NULL,我们可以手动设置一个固定的返回值,该值的数据类型必须与LEAD表达式类型一致。 --5、lead函数的default参数 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Swift – 具有参数的匿名函数作为回调(语法)
- quick-cocos2d-x真机调试
- SQLite这么娇小可爱,不多了解点都不行啊
- 单元测试 – UIApplication.sharedApplication().委托作为A
- ruby-on-rails – rspec应该has_select(‘cars’,:options
- 解析XML格式数据
- c# – 将字符串编号转换为数字序列 – .Net 2.0
- Redux学习笔记-Vol.1-介绍
- Oracle for in loop循环时expression is of wrong type报错
- ruby-on-rails – 在Rails 3.1中重新加载lib文件而不重启de