我是SQL的新手,并尝试过这些示例,但根据我的要求没有找到它。如果有任何专业人士能够回答,我会很高兴。
我有一个包含150列和数百万条记录的表A.我需要将表A与表B进行比较(表A和表B都在Netteza中)。
我需要一个SQL查询,它可以按记录比较表A和B两个表,如果表B中的记录存在差异,则给我结果。
FirstName LastName ZipCode
Gary Martin 500020
John Mills 788802
FirstName LastName ZipCode
Gary Martin 500020
John Mill 788802
预计会得到这样的结果:
FirstName LastName ZipCode FirstName LastName ZipCode
John Mills 788802 John Mill 788802
答案 0 :(得分:1)
表结构是否完全相同?如果是这样,您可能会使用Set Operators,尽管性能可能不是最好的。有点像:
Select *
from (Select * From TableA
MINUS
Select * from TableB) A
Join
(select * from TableB
MINUS
Select * from TableA) ON *common unique field if there is one*
每个MINUS子查询都会在First表中为您提供在第二个表中找不到完全匹配的记录。如果两个表中有一个共同的唯一标识符,那么您可以加入两个子查询的结果,以获得您期望的结果。