2012-10-26 110 views
-2

可能重複:
Delete Duplicate SQL Records從表中刪除重複的行

我想從一個表中刪除重複的行

ID  uID  SID  USID 
------------------------------ 
4391 007 Flight ADM007 
4392 007 Enquiry ADM007 
6723 007 Flight ADM007 
6724 007 Enquiry ADM007 
6725 008 Flight ADM008 
6726 008 Enquiry ADM008 
4393 008 Flight ADM008 
4394 008 Enquiry ADM008 
4395 009 Flight ADM009 
4396 009 Enquiry ADM009 
6727 009 Flight ADM009 
6728 009 Enquiry ADM009 

我想只保留

4391 007 Flight ADM007 
4392 007 Enquiry ADM007 
6725 008 Flight ADM008 
6726 008 Enquiry ADM008 
4395 009 Flight ADM009 
4396 009 Enquiry ADM009 

請給我建議

+1

如果您搜索StackOverflow以獲取「刪除重複記錄」,此問題已被多次解決。 –

回答

1

您可以使用CTE。

with C as 
(
    select row_number() over(partition by uID, SID, USID order by ID) as rn 
    from YourTable 
) 
delete from C 
where rn > 1 

在YourTable離開將是

ID   uID   SID  USID 
----------- ----------- ---------- ---------- 
4391  7   Flight  ADM007 
4392  7   Enquiry ADM007 
4393  8   Flight  ADM008 
4394  8   Enquiry ADM008 
4395  9   Flight  ADM009 
4396  9   Enquiry ADM009 

你正在尋找,但好不完全是因爲它沒有得到另一列由命令行。