最近我遇到了以下測驗。試想一下,我們有這個表有趣的SQL測驗
+--------+
| colors |
+--------+
| red |
| black |
| white |
| green |
| orange |
+--------+
的任務是寫一個SQL查詢,將選擇所有對,而不允許重複。排列也被計算({紅色,黑色} = {黑色,紅色},因此只允許一對)。
最近我遇到了以下測驗。試想一下,我們有這個表有趣的SQL測驗
+--------+
| colors |
+--------+
| red |
| black |
| white |
| green |
| orange |
+--------+
的任務是寫一個SQL查詢,將選擇所有對,而不允許重複。排列也被計算({紅色,黑色} = {黑色,紅色},因此只允許一對)。
試試這個
Select A.Color, B.Color
From Colors A
Cross Join Colors B
Where A.Color > B.Color
黑色=黑色將是錯誤的,因此它不會被選中。上面的查詢看起來不錯 – 2009-07-28 19:09:21
Select A.Colors, B.Colors From Colors A
Cross Join Colors B Where A.Colors < B.Colors or B.colors < A.colors
試試這個:
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
你找ANSI SQL,也可以是具體的DBMS(如SQL服務器。)? – 2009-07-28 19:07:28
不,只是簡單ANSI – glaz666 2009-07-28 19:11:13