【问题标题】:Database Table Content Comparison数据库表内容比较
【发布时间】:2016-09-14 14:08:36
【问题描述】:

我们使用 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 语句中。但这感觉不对。

【问题讨论】:

    标签: sql comparison hana database-table


    【解决方案1】:

    您可能想使用except

    SELECT * FROM A
    EXCEPT
    SELECT * FROM B;
    
    SELECT * FROM B
    EXCEPT
    SELECT * FROM A;
    

    【讨论】:

    • 这是基于集合操作的语义正确答案。不过,出于实际目的——尤其是在更大的数据集上——这是一种非常资源密集型的方法。此外,当您运行这些查询并实际发现不匹配的记录时,您不知道它们来自哪个表。 SAP 解决方案管理器(另一种 SAP 产品)提供了一种功能,可以执行高性能的逐块记录集比较,并允许了解差异的来源。
    猜你喜欢
    • 2016-05-04
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多