方案
非常大的查询会返回多个连接表中的大量字段。 有些记录似乎是重复的。 你完成了一些检查,一些分组。您将重点放在几个记录上以供进一步调查。 尽管如此,还是有太多的字段来检查每个值。
问题
是否有任何比较两条记录的内置函数,如果记录匹配则返回TRUE,否则为FALSE和不匹配字段的集合?
答案 0 :(得分:6)
CHECKSUM
函数应该有助于识别匹配的行
SELECT CHECKSUM(*) FROM table
答案 1 :(得分:0)
可能这就是你要找的东西:
SELECT * FROM YourTable
GROUP BY <<ColumnList>>
HAVING COUNT(*) > 1
根据Podiluska提供的建议,找出重复的记录
SELECT CHECKSUM(*)
FROM YourTable
GROUP BY CHECKSUM(*)
HAVING COUNT(*) > 1
答案 2 :(得分:0)
我建议使用hashbytes
函数来比较行。它比校验和更好。
如何通过所有列创建row_number和parttion,然后选择rn为2及以上的所有行?这不是一个慢的方法,它会为你提供完美的数据,并且会提供正在复制的完整行的数据。我会使用这种方法,而不是依赖于所有的散列技术..