3

我在数据库中有如下行:

DocumentNumber   LineNumber
1234             1
1234             1 
1453             1
1237             1
1677             1

这些值已经存储在数据库中。如果有多个文档编号,我需要做的是将 linenumber 列增加 1。所以文档编号 1234 的行号为 1 和 2。

无论如何在更新声明中这样做?

4

1 回答 1

5

如果您使用的是 SQL-Server 2005 或更高版本,您可以使用ROW_NUMBER

WITH CTE AS
(
  SELECT DocumentNumber, LineNumber
     ,   RN = ROW_NUMBER() OVER (PARTITION BY DocumentNumber Order By DocumentNumber)
  FROM tableName
)
UPDATE CTE SET LineNumber = RN

演示小提琴在这里

于 2012-11-12T21:16:11.143 回答