比较SQL Server中的两行

时间:2012-07-17 09:57:23

标签: sql-server tsql comparison

方案

非常大的查询会返回多个连接表中的大量字段。 有些记录似乎是重复的。 你完成了一些检查,一些分组。您将重点放在几个记录上以供进一步调查。 尽管如此,还是有太多的字段来检查每个值。

问题

是否有任何比较两条记录的内置函数,如果记录匹配则返回TRUE,否则为FALSE和不匹配字段的集合?

3 个答案:

答案 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及以上的所有行?这不是一个慢的方法,它会为你提供完美的数据,并且会提供正在复制的完整行的数据。我会使用这种方法,而不是依赖于所有的散列技术..