我正在尝试更新表中的一列以使用值 1 到(由记录数决定的最大数量)。
我不知道我的解释是否正确,所以我用我要更新的数据设置了一个 SQLFiddle。
SQL FIDDLE
我想将版本列设置为 1 到(最大数量)。
有什么方法可以重写此查询以缩放版本号?
如,我希望第一条记录使用 1,第二条记录使用 2,依此类推...
UPDATE Documents
SET Version = 1
最佳答案
您可以使用 CTE 而无需加入:
with RankedDocument as
(
select *
, rn = row_number() over (order by ID)
from Documents
)
update RankedDocument
set Version = rn
SQL Fiddle with demo .
关于sql - 如何将表的列更新为缩放值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841066/