我有一张这样的表
A1 | A2
a | b
c | d
b | a
a | b
我想选择不同的对:
A1 | A2
a | b
c | d
我试过了:
select a, b from (
select a, b , a|b as ab, b|a as ba from T
)t where ab!=ba group by a, b
任何人都对我如何做到这一点有更好的了解? 感谢
答案 0 :(得分:1)
符合ANSI标准的方法是使用 Key: 102bob
Key: 109aritra
表达式将每对A1
和A2
值重新排列为最小值/最大值。然后在这个派生表上选择distinct。
CASE
答案 1 :(得分:0)
如果不涉及NULL值,这将是最干净的方法
select distinct
least (A1,A2) as A1
,greatest (A1,A2) as A2
from t
;
+-----+-----+
| a1 | a2 |
+-----+-----+
| a | b |
| c | d |
+-----+-----+