[英]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.