比较表1和Netezza中的表2,其中表1有百万条记录

时间:2016-04-07 13:59:21

标签: sql plsql oracle-sqldeveloper plsqldeveloper nzplsql

我是SQL的新手,并尝试过这些示例,但根据我的要求没有找到它。如果有任何专业人士能够回答,我会很高兴。

我有一个包含150列和数百万条记录的表A.我需要将表A与表B进行比较(表A和表B都在Netteza中)。

我需要一个SQL查询,它可以按记录比较表A和B两个表,如果表B中的记录存在差异,则给我结果。

表A

FirstName LastName ZipCode
Gary      Martin   500020
John      Mills    788802

表B

FirstName LastName ZipCode
Gary      Martin   500020
John      Mill     788802

预计会得到这样的结果:

FirstName LastName ZipCode   FirstName LastName ZipCode 
John      Mills    788802    John      Mill     788802

1 个答案:

答案 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表中为您提供在第二个表中找不到完全匹配的记录。如果两个表中有一个共同的唯一标识符,那么您可以加入两个子查询的结果,以获得您期望的结果。