簡體   English   中英

比較Teradata中兩個表的內容的最佳方法?

[英]Best way to compare contents of two tables in Teradata?

當您需要比較兩個表以了解它們之間的區別時,是否使用了任何工具或快捷方式,或者您是否手工編寫了SQL以比較兩個表?

基本上,諸如Red Gate SQL數據比較之類的產品的核心功能(我的表的方案通常總是匹配的)。

背景:在我的SQL Server環境中,我創建了一個存儲過程,該過程檢查兩個表/視圖的元數據,創建一個查詢(作為動態sql),該查詢將指定鍵列上的兩個表聯接在一起,並比較compare列中的數據,報告關鍵差異和數據差異。 該查詢既可以打印和修改/復制,也可以直接執行。 不幸的是,我們不允許在Teradata環境中創建存儲過程。

聽起來像Talend的Open Profiler這樣的數據分析工具在那時最有意義。

您可以編寫一個BTEQ語句來構建類似於SQL Server存儲過程的查詢,然后導出動態構建的SQL。 然后,您可以在BTEQ內部運行它。 它可能會很麻煩,但是只要有足夠的決心,您就可以模擬一些東西。

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM