SQL 服务器重命名重复条目

SQL Server rename duplicate entries

我有一个 table (TableA) 主键 (dummy_id) 包含很多重复的发票号码 (check_no) 重复项最多 MAXIMUM 6 我想保持 one 不变,并重命名左侧 A,B,C,D,E 的其余部分

示例

dummy_id    check_no
11537       1/41034             
11539       1/41034             
11542       1/41034             
11545       1/41034             
11516       1/41034             
11486       1/41034  

应该变成

dummy_id    check_no
11537       1/41034             
11539       A/41034             
11542       B/41034             
11545       C/41034             
11516       D/41034             
11486       E/41034 

任何想法都欢迎

提前致谢

基本上你可以做的是在 CTE 中分配一个 row_number 然后更新 CTE,使用 stuff 到用所需的顺序替换第一个字符。

在下面的示例中,它保持具有最低 dummy_id 的行不变并更新其余行。如有必要,请调整此排序标准。

with r as (
  select *, Row_Number() over(partition by check_no order by dummy_id) rn
  from t
)
update r set
  check_no = Stuff(check_no, 1, 1, Char(rn + 63))
where rn > 1;

Demo Fiddle