2013-02-11 88 views
0

我試圖擺脫SQL中的重複組,但問題是他們不是真的重複。刪除SQL中的「重複」組

我有這樣的一個表:

a | b 

0 | 1 
2 | 3 

然而,該表還增加了B,A放回它,所以我結束了這個作爲最終的表:

a | b 

0 | 1 
2 | 3 
-------- 
1 | 0 
3 | 2 

我試圖做的是返回不同的對(第一個表),並且我遇到了問題。任何提示將不勝感激!

+3

'1,0'是不一樣的'0,1'。 – Kermit 2013-02-11 16:32:00

+0

在你的例子中,一切都是截然不同的。你不能也不會得到比戈登更好的答案。 – Art 2013-02-11 16:38:46

+0

這或多或少與此問題相同:http://stackoverflow.com/q/14810824/330315 – 2013-02-11 17:33:01

回答

2

試試這個:

select distinct (case when a < b then a else b end) as First, 
     (case when a < b then b else a end) as Second 
from t 

如果您使用的是Oracle(這是用sqlplus的假設),可以簡化這:

select distinct least(a, b), greatest(a, b) 
from t 
+0

啊,是的,這是非常有道理的。感謝您的快速回復! – jongusmoe 2013-02-11 16:37:10