更新和制作唯一的重复记录

时间:2015-07-27 18:07:26

标签: sql sql-server sql-update duplicates

我的表有多次重复记录,相同的数字和代码。 我不想删除重复的记录,但是例如附加'V'将使其唯一。

我尝试使用更新语句并将值设置为'V',但我自己更新了这些表,但它不起作用,因此我就在这里。

Sample data
324 
324           
12369 
12369
12369         
12439          
16855          
4 
4             
6              
151 
151
151           
1515           
4520 
4520          

2 个答案:

答案 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为每次出现获取唯一的增量值。