我在数据库中有如下行:
DocumentNumber LineNumber
1234 1
1234 1
1453 1
1237 1
1677 1
这些值已存储在数据库中。如果有多个文档编号,我需要做的是将linenumber列加1。因此,文档编号1234将具有1和2的亚麻布。
有没有在更新声明中这样做?
答案 0 :(得分: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