我的桌子只有一列
id -- 1 2 3 5 5
我想将第4行的值更新为“4” 所以要求的输出是:
id -- 1 2 3 4 5
我怎样才能实现这个目标
答案 0 :(得分:7)
WITH CTE AS
(
SELECT ID, RN = ROW_NUMBER() OVER (ORDER BY ID ASC)
FROM dbo.TableName
)
UPDATE CTE SET ID = RN
WHERE ID <> RN
这将根据订单确定的行号更新所有“错误”ID。