欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQLServer的Lead和Lag如何实现?

程序员文章站 2022-06-28 18:09:15
在这里不谈2012版本,因为那版本好像有了lead,lag函数,不过没试过。这里主要讲怎么自己实现 1、有表a如下数据 insert into a(id,name) values(1,'...

在这里不谈2012版本,因为那版本好像有了lead,lag函数,不过没试过。这里主要讲怎么自己实现

1、有表a如下数据

insert into a(id,name) values(1,'张三')  
insert into a(id,name) values(2,'李四')  
insert into a(id,name) values(3,'王五')  

2、sql如下

select * from   
(select a.*,row_number() over(order by id) r  from a) k  
,(select a.*,row_number() over(order by id) r from a) b   
where k.r=b.r-1  

另外就是r=r+1