以下是该方案,
表A
--------------------- | Col 1 | Col 2 --------------------- | 1 | 2 --------------------- | 3 | 4 --------------------- | 2 | 1 --------------------- | 4 | 3 ---------------------
在第1栏中,有一些数据' 1'在第2栏中有一些数据' 2'。在同一个表中,还有另一行,这些值互换。 如何使用SQL查询
获得如下输出输出
-------------------------- | Col 1 | Col 2 | -------------------------- | 1 | 2 | -------------------------- | 3 | 4 | --------------------------
任何人都可以帮我写这个SQL查询吗?
答案 0 :(得分:4)
一个选项是
SELECT a.col1, a.col2
FROM tableA a
WHERE NOT EXISTS( SELECT 1
FROM tableA b
WHERE a.col1 = b.col2
AND a.col2 = b.col1
AND a.col1 > b.col1 );
产生你想要的输出
SQL> ed
Wrote file afiedt.buf
1 with tableA as (
2 select 1 col1, 2 col2 from dual union all
3 select 3, 4 from dual union all
4 select 2, 1 from dual union all
5 select 4, 3 from dual
6 )
7 SELECT a.col1, a.col2
8 FROM tableA a
9 WHERE NOT EXISTS( SELECT 1
10 FROM tableA b
11 WHERE a.col1 = b.col2
12 AND a.col2 = b.col1
13* AND a.col1 > b.col1 )
SQL> /
COL1 COL2
---------- ----------
1 2
3 4