ORACLE同一次查询取同一字段的前(后)N条记录
oracle中lag和lead函数可以在同一次查询中取某一字段的前N条或后N条记录。
函数对应的语法格式如下:
lead(exp_str,offset,
default) over()
lag(exp_str,offset,
default) over()
参数说明:
exp_str:值表达式,通常是字段,也可以是表达式。
offset:偏移,顺序下的(前或后)第N条。
default:默认值。
实例:
执行sql语句:select * from zt_num_brand_temp order by time
效果如下图所示:
采用lead与lag函数效果如下:
执行sql语句:select mobile,lead(t.time,1,null) over (order by t.time desc ) nex,t.time,lag(t.time,1,null) over(order by t.time desc) prev from zt_num_brand_temp t
效果如下图所示: