2016-09-14 57 views
0

我们使用SAP HANA作为数据库。数据库表内容比较

如何比较两个表是否有相同的内容?

我已经没有使用SQL主键的比较:

select COUNT (*) from Schema.table1; 
select COUNT (*) from Schema.table2; 
select COUNT (*) 
    from Schema.table1 p 
    join schema.table2 r 
    on p.keyPart1 = r.keyPart1 
    and p.keyPart2 = r.keyPart2 
    and p.keyPart3 = r.keypart3; 

所以我比较了两个表和联接的行。所有的行数都是一样的。

但我仍然不知道所有行的内容是否完全相同。这可能是非关键列的一个或多个单元格发生偏离。

我想过把所有的列都放在join语句中。但这并不合适。

回答

1

您可能需要使用except

SELECT * FROM A 
EXCEPT 
SELECT * FROM B; 

SELECT * FROM B 
EXCEPT 
SELECT * FROM A; 
+0

这是一个基于集合运算的语义正确答案。但实际上,特别是在较大的数据集上,这是一种非常资源密集型的方式。 此外,当您运行这些查询并实际查找不匹配的记录时,您不知道它们来自哪个表。 SAP解决方案管理器(额外的SAP产品)提供执行高性能块式记录集比较的功能,并允许了解差异源于何处。 –