1

我有一些记录,比如

a,b
b,a
a,c
c,a
b,d
d,b
b,f
f,b
...

在我的查询结果中。(它们是电子邮件)最好的方法是:

a,b
a,c 
b,d
b,f

并消除 b,a 和 c,a, d,b, f,b?

我试过了

SELECT *
FROM ...
WHERE MOD(ROWNUM/2)=0

但它只返回第一行

4

2 回答 2

7

怎么样 ...

select distinct
  least(col1,col2) col1,
  greatest(col1, col2) col2
from
  my_table
于 2013-09-14T20:34:59.197 回答
1

大卫的好回答,

标准 SQL 的答案:

select a,b from (
  select 
    (case when col1 < col2  
          then col1
          else col2
      end) as a,
    (case when col1 > col2  
          then col1
          else col2
      end) as b
from t )
group by a,b
order by a,b;

Sqlfiddle:

http://sqlfiddle.com/#!4/c63b7/1

于 2013-09-14T20:58:25.067 回答