小编use*_*586的帖子

在SQL Server中具有条件的Lag()

我有一个这样的表:

Number   Price    Type       Date         Time
------   -----    ----    ----------    ---------
23456    0,665     SV     2014/02/02     08:00:02
23457    1,3       EC     2014/02/02     07:50:45
23460    0,668     SV     2014/02/02     07:36:34
Run Code Online (Sandbox Code Playgroud)

对于每个EC,我需要上一个/下一个SV价格.在这种情况下,查询很简单.

Select Lag(price, 1, price) over (order by date desc, time desc),
Lead(price, 1, price) over (order by date desc, time desc)
from ITEMS
Run Code Online (Sandbox Code Playgroud)

但是,有一些特殊情况,其中两行或更多行是EC类型:

Number   Price    Type       Date         Time
------   -----    ----    ----------    ---------
23456    0,665     SV     2014/02/02     08:00:02
23457    1,3       EC     2014/02/02     07:50:45
23658    2,4       EC     2014/02/02     07:50:45
23660    2,4       EC     2014/02/02 …
Run Code Online (Sandbox Code Playgroud)

sql-server lag lead

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

lag ×1

lead ×1

sql-server ×1