2010-03-18 136 views
0

當您需要比較兩個表以查看差異時,有沒有使用任何工具或快捷方式,或者是否手動編寫SQL以比較兩個表?比較Teradata中兩個表格內容的最佳方法?

基本上像紅門SQL數據的產品的核心功能比較(我的表通常總是匹配模式)。

背景:以我SQL Server環境中,我創建它連接上的指定鍵列中的兩個表的存儲過程,其檢查的兩個表/視圖中的元數據,創建一個查詢(如動態SQL),並且比較數據在比較列中,報告關鍵差異和數據差異。該查詢可以打印並修改/複製,或者按原樣執行。不幸的是,我們不允許在我們的Teradata環境中創建存儲過程。

回答

1

聽起來像一個數據分析工具,如Talend's Open Profiler將使該點的最有意義的。

你可以寫建立類似於您的SQL Server存儲過程的查詢,然後導出動態生成的SQL一個BTEQ語句。然後你可以在你的BTEQ內部運行。它可能會很麻煩,但有足夠的決心,你可能會嘲笑一些東西。

1

我不知道這是否是你正在尋找正確的答案。

sel * from database_name1.table_name1 
minus 
sel * from database_name2.table_name2; 

你可以通過選擇特定的列來做同樣的事情。這基本上會給table1中table2中不存在的行。

如果你不是在找這種類型的答案,請忽略這一點,並繼續進行。你

也可以選擇像下面。

select 
table1.keycol1, 
table2.keycol2, 
(table1.factcol1 - table2.factcol2) as diff 
from table1 
inner join 
table2 
on table1.keycol1 = table2.keycol1 
and table1.keycol2 = table2.keycol2 
where diff <> 0 

這只是一個可以給出一個想法的分析。請忽略任何語法和程序錯誤。 希望這有助於。

+0

謝謝 - 這是類似於我們在SQL Server上生成的工具的代碼。 – 2010-05-06 15:23:19