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;
我有一个 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;