查找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;