我有一個帶有主鍵(dummy_id)的表(TableA),其中包含許多重復的發票號(check_no)重復最多可以達到6 個 我想保持一個不變,并將其余的重命名為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
任何想法都非常受歡迎
先感謝您
uj5u.com熱心網友回復:
基本上你可以做的是在 CTE 中分配一個row_number,然后更新 CTE,使用東西將第一個字符替換為所需的序列。
在下面的示例中,它保持具有最低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;
演示小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447894.html
下一篇:在子查詢中使用<=輸出結果
