2016-09-14 83 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產品)提供執行高性能塊式記錄集比較的功能,並允許瞭解差異源於何處。 –