SQL:如何将ID附加到具有重复值的行

3 sql duplicates

我有一个表有一些重复的行.我想只修改重复的行,如下所示.

之前:

id     col1
------------
1      vvvv
2      vvvv
3      vvvv
Run Code Online (Sandbox Code Playgroud)

后:

id     col1
------------
1      vvvv
2      vvvv-2
3      vvvv-3
Run Code Online (Sandbox Code Playgroud)

Col1附加一个连字符和id列的值.

Ber*_*erk 7

此SQL只会更新重复项,但不会更新ID最低的项:

update tbl
  set col1 = col1 + '-' + convert(varchar, id)
  where exists(select * from tbl t where t.col1 = tbl.col1 and t.id < tbl.id)
Run Code Online (Sandbox Code Playgroud)