取某个字往前n的值 with tmp as()&lag

本文介绍了一个使用临时表和SQL窗口函数LAG及LEAD的具体案例。通过创建临时表并利用LAG和LEAD函数来获取指定列的前驱和后继值,展示了如何在逆序排序条件下实现这一功能。

with tmp as(
select ‘1’ id ,‘a’ name from dual
union all
select ‘2’ id ,‘b’ name from dual
union all
select ‘3’ id ,‘c’ name from dual
union all
select ‘4’ id ,‘d’ name from dual
union all
select ‘5’ id ,‘e’ name from dual
)
select a.*,
lag(name,2,‘’) over (order by id desc) lag–取name的上2个值
–lead(name,2,‘’) over (order by id desc) lead–取name的下2个值
from tmp a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值