2012-09-07 74 views
0

我想知道如何刪除重複的記錄,其中PK是uniqueidentifier。 我必須根據一組字段中的重複值刪除記錄。我們可以使用選項來獲取使用Row_Number()的可修改值,除了第一行,我們可以刪除其餘或記錄。 但我想建立一個班輪查詢。任何建議?如何刪除重複的記錄,其中PK是uniqueidentifier字段

+2

你怎麼有一個獨特的PK重複記錄?是否有其他標準將其歸類爲「重複」? – Kermit

+0

在我的案例中,重複記錄由「一組字段中的重複值」標識。例如:如果我有ID,a,b,c,d字段的表比a,b和d字段在兩個記錄中具有相同的值,這些將被視爲重複記錄。 – yashpal

+0

我們需要看到一個表格結構來進一步幫助你。 – Kermit

回答

6

您可以使用CTE要做到這一點,沒有看到這裏你的表結構是基本的SQL

;with cte as 
(
    select *, row_number() over(partition by yourfields order by yourfields) rn 
    from yourTable 
) 
delete 
from cte 
where rn > 1 
0
delete from table t using table ta where ta.dup_field=t.dup_field and t.pk >ta.pk 
; 
+0

您正在引用您未在查詢中定義的'tu',並且應該至少有一個解釋查詢如何工作的句子。 – Guvante

+0

謝謝@Guvante – Hunter

+0

@Grijesh:pk是uniqueidentifier字段 – yashpal