sql - 如何将表的列更新为缩放值

标签 sql sql-server

我正在尝试更新表中的一列以使用值 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/

相关文章:

SQL Server : how to delete based on another table

sql - 为什么 SELECT COUNT(1 +'A' ) 在 SQL Server 中返回 1

sql - 用 SQL 比较两个表

sql-server - t-sql 查找最小值

sql - T-SQL : Best way to replace NULL with most recent non-null value?

php - 使用 BETWEEN 变量进行 DB2 SQL 分页

mysql - sql查询年份差异取决于特定月份

sql - 在更新语句执行期间为每一行调用 Now()

sql - 优化 Oracle SQL 查询

mysql - 第二个插入在我的触发器中不起作用