您的位置:首页 > 数据库 > Oracle

Oracle分析函数之lead()和lag()函数

2017-08-29 15:23 816 查看

Oracle的LAG和LEAD分析函数

Lag函数可以在一次查询中取出当前行的同一字段的前面第N行的数据。

Lead[b]函数可以在一次查询中取出当前行的同一字段的后[b][b]面第[/b]N行的值。[/b][/b]





lead 和lag 的语法类似以下以lag为例进行讲解!

lag(exp_str,offset,defval) over()

讲解:exp_str-需要查询偏移的字段(可以是表达式,不支持聚合函数)

offset:偏移量(即:数据偏移的行数)

defval:偏移量位null时,替换的值

select lead(ename)over( order by null) as l,ename,empno from emp;

select lead(sal-2000)over(order by null)as l,sal,empno from emp;--偏移值是表达式

select lead(ename,4)over( order by null) as l,ename,empno from emp;--偏移量是2

select lead(ename,4,'hello world')over( order by null) as l,ename,empno from emp;--偏移值是null 的情况

select lag(ename)over( order by null) as l,ename,empno from emp;

select lag(sal-2000)over(order by null)as l,sal,empno from emp;--偏移值是表达式

select lag(ename,4)over( order by null) as l,ename,empno from emp;--偏移量是2

select lag(ename,4,'hello world')over( order by null) as l,ename,empno from emp;--偏移值是null 的情况




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: