根据下表,我如何区分两个表,给出T143每行重复的事实:
T001.CODE T143.CODE
---- -----
A1 A1
A1
A2 A2
A2
A3
A4 A4
A4
结果应该是A3作为它在T001中的唯一存在 - 我还需要显示T143中的所有列。
这是我做得很远但在手动检查数据后出现错误:
SELECT CODE FROM T001
EXCEPT
SELECT CODE FROM T143
感谢
答案 0 :(得分:0)
您始终可以使用exists
执行此操作:
select t1.code
from t001 t1
where not exists (select 1 from t143 t2 where t2.code = t1.code);
如果您还想要t2
中的列,请使用union all
获取这些列。
如果您想在两个表中使用所有代码,只需执行以下操作:
select t1.code
from t001
union -- on purpose for duplicate removal
select t2.code
from t143;
答案 1 :(得分:0)
全外连接应该可以解决这个问题
SELECT DISTINCT COALESCE(T001.CODE,T143.CODE), T143.*
FROM T001 FULL OUTER JOIN T143
ON T001.CODE = T143.CODE
WHERE T001.CODE IS NULL OR T143.CODE IS NULL
编辑:由于标签中提到了DISTINCT,我将其添加到查询