SQLServer的Lead和Lag实现

在这里不谈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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。