2009-07-28 24 views
7

最近我遇到了以下測驗。試想一下,我們有這個表有趣的SQL測驗

+--------+ 
| colors | 
+--------+ 
| red | 
| black | 
| white | 
| green | 
| orange | 
+--------+ 

的任務是寫一個SQL查詢,將選擇所有對,而不允許重複。排列也被計算({紅色,黑色} = {黑色,紅色},因此只允許一對)。

+0

你找ANSI SQL,也可以是具體的DBMS(如SQL服務器。)? – 2009-07-28 19:07:28

+0

不,只是簡單ANSI – glaz666 2009-07-28 19:11:13

回答

27

試試這個

Select A.Color, B.Color 
From Colors A 
Cross Join Colors B 
Where A.Color > B.Color 
+0

黑色=黑色將是錯誤的,因此它不會被選中。上面的查詢看起來不錯 – 2009-07-28 19:09:21

0
Select A.Colors, B.Colors From Colors A 
Cross Join Colors B Where A.Colors < B.Colors or B.colors < A.colors 
0

試試這個:

Select * From colours A 
Cross Join colours B Where A.colours < B.colours or B.colours > A.colours 
and b.colours != b.colours and a.colours != a.colours