我有两个表TabA和TabB。都没有键列
列都是副本,列数都大于80。
TabA有3000万条记录。TabB只有2000条记录。
现在我需要比较两个表之间的所有列,因为没有键列,并从TabA中删除重复的记录。
我想找到比较两个表的最佳方法,而不是将所有80列放在join或WHERE子句中。
如果需要所有80列来标识记录,那么您很难在查询中不以某种方式使用它们。
您可以在所有列上使用HASHBYTES()
计算哈希码,然后只比较结果哈希码。
还有CHECKSUM(*)
函数计算所有列的哈希值,而不需要显式列出它们,但它返回int
作为结果,如果现在和然后的误报是不可接受的,这太弱了。