当你需要比较两个表看到的差异是什么,还有你使用任何工具或快捷方式,或者你handcode的SQL两个表进行比较?

基本上像红门SQL数据的产品的核心功能比较(为我的表模式通常总是匹配)。

背景:以我SQL Server环境中,我创建了一个存储过程,其检查的两个表/视图中的元数据,创建一个查询(如动态SQL),其联接在指定的键列中的两个表,而在比较数据比较列,报告关键的区别和差异数据。该查询可以被打印和改性/复制或只excecuted原样。我们不允许在我们的Teradata环境中创建存储过程,很遗憾。

有帮助吗?

解决方案

声音等的数据分析工具例如 Talend的打开探查将使最有意义在该点处。

您可以编写一个建立类似的查询到您的SQL Server存储过程中BTEQ语句,然后导出动态生成的SQL。然后,您可以依次运行BTEQ的里面。它可能很麻烦,但有足够的决心,你大概可以模仿的东西了。

其他提示

我不知道这是否是你正在寻找正确的答案。

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

您可以通过选择特定的列做同样的。这将基本上给从表2的不存在的行其在表1。

如果你不是在找这种类型的答案,请忽略这一点,并继续下去。

另外,可以选择如下面

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归因
不隶属于 StackOverflow
scroll top