这个问题与这个问题 https://stackoverflow.com/questions/4602083/sql-compare-data-from-two-tables/4604221#comment-7562192,但只是略有不同。
我有 2 个表,TableA 和 TableB,其中 TableB 实际上只是 TableA 的备份,唯一真正的区别是 TableB 有一个“ACTION”列,指示 TableA 中已采取的操作。现在我忽略该列(尽管理想情况下我希望将其附加到最终结果中,所以也请随意提出建议:D)
我想比较两个表并获取每个表中不同的行。我用过Jeff 的 SQL Server 博客 - 在 SQL Server 中比较两个表的最短、最快且最简单的方法:UNION! http://weblogs.sqlteam.com/jeffs/archive/2004/11/10/2737.aspx创建查询的示例,但是,它仅返回 TableB 中不同的行。
推荐的方法是什么?
注意:代码与第二个链接中的示例完全相同,因此我不会在此处发布任何内容
这将为您提供 A 中 B 中没有的所有内容
select * from tableA
Except
select * from tableB
反之亦然
select * from tableB
Except
select * from tableA
编辑:以这种方式加入:
(select * from tableA
Except
select * from tableB)
union all
(select * from tableB
Except
select * from tableA)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)