我想获取当前行中的下一行值。就像LEAD()
在最新的SQL Server中所做的那样。但我目前正在使用SQL Server 2000.而且我没有任何其他选择。
实际情况是:
TableRule:
# HeadNo | NextHeadNo | NoFrom
-----------+------------+------------
1 AA | AB | 1
2 AB | AC | 1
3 AC | AX | 1
4 AD | AE | 1 ****and so on
我想根据NextHeadNo
上的下一个值更新HeadNo
值。
所以根据数据Row-3
应该得到更新AX ➪ AD
。
我有大约1000条记录要更新一次。
我希望有人能帮助我。
您可以尝试使用子查询进行以下操作。
SELECT *,
(SELECT TOP 1 headno
FROM @table T2
WHERE T2.headno > T1.headno
ORDER BY headno) NextHeadNo
FROM @table T1
ORDER BY headno
要进行更新,您可以尝试以下操作。
UPDATE T1 SET NextHeadNo=
(SELECT TOP 1 headno
FROM @table T2
WHERE T2.headno > T1.headno
ORDER BY headno)
FROM @table T1
编辑:
但在最后一行得到NULL,所以我想给第一行的引用。我怎样才能做到这一点?
我建议你写一个单独的更新声明,而不是像下面这样编写qazxsw poi。
CASE WHEN