我有两个具有相同结构的表,T_1 = [A,B,C] T_2 = [A,B,C]。它们内部的值之间存在差异。如何使用查询获取这些值?
致谢
答案 0 :(得分:0)
您可以使用group by
和聚合来获取一个表而不是另一个表中的值:
select sum(in_1), sum(in_2), a, b, c
from ((select 1 as in_1, 0 as in_2, a, b, c
from t_1
) union all
(select 0, 1, a, b, c
from t_2
)
) tt
group by a, b, c
having sum(in_1) <> sum(in_2);
请注意,这是非常通用的。它处理列中的NULL
值。它还可以处理表中的重复项,以确保计数相同。
答案 1 :(得分:0)
您可以尝试一种简单的编码方式,但是性能不够好
(select * from T_1
minus
select * from T_2)
union all
(
select * from T_2
minus
select * from T_1
) ;
如果您正在寻找其他方法,建议您检查一下 http://www.dba-oracle.com/t_convert_set_to_join_sql_parameter.htm
答案 2 :(得分:0)
选择*从表1 除 SELECT * FROM TABLE2