查找oracle中两个表中不常见的行

查找oracle中两个表中不常见的行,oracle,Oracle,我有两个具有以下值的表 tab1 tab2 ---- ---- A A B E C F D G 输出应如下所示: O/P --- B C D E F G 或: 但是,最好的表现是: select distinct nvl(a.field, b.field) as field from tab1 a

我有两个具有以下值的表

tab1              tab2
----              ----
A                   A
B                   E
C                   F
D                   G
输出应如下所示:

O/P
---
B
C
D
E
F
G
或:

但是,最好的表现是:

select distinct nvl(a.field, b.field) as field
from tab1 a
full join tab2 b on (a.field=b.field)
where a.field is null or b.field is null;
有关上述查询,请参见此处a

或:

但是,最好的表现是:

select distinct nvl(a.field, b.field) as field
from tab1 a
full join tab2 b on (a.field=b.field)
where a.field is null or b.field is null;

请参阅此处a了解上述查询。

我觉得问题很清楚……我觉得问题很清楚……最后一个查询在这种情况下不起作用。它将只显示两个表中的公共值。我添加了一个SQLFIDLE以显示情况并非如此。它显示非公共记录。最后一个查询在这种情况下不起作用。它将只显示两个表中的公共值。我添加了一个SqlFIDLE来说明情况并非如此。它显示非常用记录。它可以工作,但在操作员中会影响性能。它可以工作,但在操作员中会影响性能。
select field from tab1
minus
select field from tab2

union all

select field from tab2
minus
select field from tab1
select distinct nvl(a.field, b.field) as field
from tab1 a
full join tab2 b on (a.field=b.field)
where a.field is null or b.field is null;