我需要比较同一张表中的 2 个连续行。如果第二行中缺少数据,我应该使用第一行的数据对其进行更新。
例如:
Row EmpID DATE PosID EmpStatus EmpDept EmpVP
----------------------------------------------------------------------
1 21 2010-12-31 NULL TC NULL 40
2 21 2010-01-25 90156840101 NULL 407 NULL
3 21 2003-11-25 NULL AC NULL NULL
第一次迭代:由于Row1 EmpStatus = TC,我想将Row2上的EmpStatus更新为TC(由于其为NULL),并将Row2上的EmpVP更新为40,如下图:
Row EmpID DATE PosID EmpStatus EmpDept EmpVP
----------------------------------------------------------------------
1 21 2010-12-31 NULL TC NULL 40
2 21 2010-01-25 90156840101 TC 407 40
3 21 2003-11-25 NULL AC NULL NULL
第二次迭代:由于 Row3 上的 PositionID 为 NULL,我想用 Row2 的 PositionID 更新 Row3。由于 Row2 现在有 EmpStatus = TC,我想比较 row2 和 row3 数据。由于第 3 行有一个新值,我想保留新值“AC”。但同时我想更新第 3 行的 EmpDept 的值 = 40,因为它是 NULL。期望的结果如下所示:
Row EmpID DATE PosID EmpStatus EmpDept EmpVP
----------------------------------------------------------------------
1 21 2010-12-31 NULL TC NULL 40
2 21 2010-01-25 90156840101 TC 407 40
3 21 2003-11-25 90156840101 AC 407 40
我正在处理历史数据加载,我必须根据日期向后建立记录。
谁能告诉我如何编码?我想知道我们是否可以进行这些更新,最好不使用游标,因为我在这张表中有很多员工。
非常感谢!