SQL - 通过 Foreach 在 select 结果上获取和更新下一条记录的值

SQL - Get and update value from next record by Foreach on select result

我在 SQL 方面经验不多,所以我的问题可能很简单: 在 SELECT 查询的结果中,我需要更新所有记录,以便每条记录获得下一条记录中的值,如屏幕截图所示。 我希望有一个简单易用的代码。

注:我有附码:

SELECT ID, Title ,IDxNumber,  LEAD(IdxNumber,1,0) Over(order by idxnumber) AS HotCode from MYTABLE

它可以显示 数据。但我想更新 table 本身的HotCode 列中的数据,而不仅仅是显示它们。

谢谢

在 SQL 服务器上,我们可以使用 updatable CTE。假设 HotCode 列已经存在于您的 table:

WITH cte AS (
    SELECT *, LEAD(IdxNumber, 1, 0) OVER (ORDER BY idxnumber) AS HotCodeNew
    FROM MYTABLE
)

UPDATE cte
SET HotCode = HotCodeNew;

对不起,如果我没理解正确,是这样的吗?

UPDATE MYTABLE SET something = table.something
FROM (
SELECT ID, Title ,IDxNumber,  
       LEAD(IdxNumber,1,0) Over(order by idxnumber) 
       AS HotCode FROM MYTABLE
) table
WHERE MYTABLE.id = table.id