从没有任何键列的表中删除重复项



我有两个表TabA和TabB。都没有键列

列都是副本,列数都大于80。

TabA有3000万条记录。TabB只有2000条记录。

现在我需要比较两个表之间的所有列,因为没有键列,并从TabA中删除重复的记录。

我想找到比较两个表的最佳方法,而不是将所有80列放在join或WHERE子句中。

如果需要所有80列来标识记录,那么您很难在查询中不以某种方式使用它们。

您可以在所有列上使用HASHBYTES()计算哈希码,然后只比较结果哈希码。

还有CHECKSUM(*)函数计算所有列的哈希值,而不需要显式列出它们,但它返回int作为结果,如果现在和然后的误报是不可接受的,这太弱了。

最新更新