2014-09-12 52 views
0

我有兩列如下,我想刪除重複。刪除重複的雙向鏈接行SQL

Column1 Column2 
1   10 
2   9 
3   8 
4   7 
5   6 
6   5 
7   4 
8   3 
9   2 
10   1 

我想刪除這些項目的一半,這樣只有5行是這樣的:

Column1 Column2 
1   10 
2   9 
3   8 
4   7 
5   6 

任何想法?我知道如何在C#中完成它,並刪除重複項然後刪除,但我想在SQL中完成。這些值表示ID和ID之間的關係。順序在關係中並不重要,所以1-10與10-1相同。所以那樣有重複的關係。

+0

'我想這樣做在SQL.'那麼爲什麼你標記你的問題'C#'? – 2014-09-12 20:05:48

+2

我沒有看到任何重複的行。 1-10與10-1相同如何? – gunr2171 2014-09-12 20:06:12

+0

@ L. B.偶然點擊C#我已更新。 – 2014-09-12 20:07:26

回答

1

一種方法是如下:

DELETE t FROM MyTable t 
WHERE t.Column1 > t.Column2 AND EXISTS (
    SELECT * FROM MyTable tt 
    WHERE t.Column1=tt.Column2 AND t.Column2=tt.Column1 
) 

t.Column1 > t.Column2說,如果有一對匹配的行,刪除一個地方Column1Column2更大。

Demo.