如何使用更新查询增加列值

时间:2017-01-31 09:31:36

标签: sql-server

我尝试在下面的查询中使用表ELEM_DUP3中的唯一值更新ID,但所有ID都使用相同的值进行更新。

UPDATE DW.ELEM_DUP3
 FROM ( SELECT MAX(ID) AS ID
    FROM DW.ELEM ) S
 SET ID = (S.ID + 1)
Data in table:      After Update:
ID Name             ID Name
5 test8              8 test8
6 test9              8 test9
7 test10             8 test10

预期结果:

ID Name
8 test8
9 test9
10 test10

任何人都可以帮助我错在哪里吗?

2 个答案:

答案 0 :(得分:2)

 UPDATE DW.ELEM_DUP3 D
 FROM ( SELECT ID AS ID
 FROM DW.ELEM Where ID=D.ID) S
 SET D.ID = (S.ID + 1)

它应该适合你

答案 1 :(得分:0)

根据要求,这可以满足您的需求:

UPDATE DW.ELEM_DUP3
SET ID = ID + (SELECT MAX(ID)-MIN(ID)+1 FROM DW.ELEM_DUP3)

你可以反复运行它,它会不断增加字段