在Oracle SQL Developer中,如何比较A + B = C表中的三个表?我必须验证A和B的所有数据是否都转换为C.另外,表A与B和C位于不同的数据库中,它们位于同一个数据库中。
答案 0 :(得分:0)
我假设不同的数据库有一列id
。假设它永远不是full outer join
,您可以使用NULL
。但是,使用union all
和聚合可能更容易。
您可以使用以下查询获取不同的ID列表:
select id, sum(inab) as inab, sum(inc) as inc
from ((select id, 1 as inab, 0 as inc
from a
) union all
(select id, 1 as inab, 0 as inc
from b
) union all
(select id, 0 as inab, 1 as inc
from c
)
) c
group by id
having sum(inab) <> 1 or sum(inc) <> 1;
实际上,您可能会有多个列。注意:如果A + B或C中有重复项,这只能保证副本出现在两者中(而不是两者都有相同的计数)。