我的表有多次重复记录,相同的数字和代码。
我不想删除重复的记录,但是例如附加'V'
将使其唯一。
我尝试使用更新语句并将值设置为'V'
,但我自己更新了这些表,但它不起作用,因此我就在这里。
Sample data
324
324
12369
12369
12369
12439
16855
4
4
6
151
151
151
1515
4520
4520
答案 0 :(得分:2)
我认为这可以帮到你:
WITH CTE AS
(
SELECT Col1,
Col1 + REPLICATE('V', ROW_NUMBER()
OVER (PARTITION BY Col1
ORDER BY (SELECT 0))-1) AS Col1_
FROM yourTable
)
UPDATE CTE
SET Col1 = Col1_;
您可以在此[SQL Fiddle Demo]
中预览结果答案 1 :(得分:1)
您需要一种策略来识别您要保留的每个键的主要行与您要更改的行以使行唯一,即使没有其他信息且您也不在乎哪个。
我的方法是自连接,它排除主要行并通过附加增量值来更新其他行,例如通过使用RANK为每次出现获取唯一的增量值。