如果存在重复记录,则在SQL数据库中增加列值

时间:2012-11-12 21:13:38

标签: sql-server

我在数据库中有如下行:

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

这些值已存储在数据库中。如果有多个文档编号,我需要做的是将linenumber列加1。因此,文档编号1234将具有1和2的亚麻布。

有没有在更新声明中这样做?

1 个答案:

答案 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

Demo-Fiddle here