从SQL Server中的当前记录中查找上一个和下一个

时间:2016-05-26 06:21:35

标签: sql sql-server sql-server-2012

我有一个很大的问题需要查找当前数据中的下一个和之前的记录。我有一个数据集如下:

enter image description here

需要如下所示的结果:

enter image description here

有可能吗?有谁可以帮助我?

1 个答案:

答案 0 :(得分:2)

您可以使用LEADLAG窗口函数:

SELECT *,
    PreviousShiftProfileID  = LAG(ShiftProfileID) OVER(PARTITION BY EmployeeID ORDER BY CDate),
    NextShiftProfileID      = LEAD(ShiftProfileID) OVER(PARTITION BY EmployeeID ORDER BY CDate)
FROM yourTable