我有两个结构完全相同的表,即相同的列。我想找出两个表中都存在但所有列的匹配值不完全相同的行数。例如。表包含 ID、名称、国家/地区列。 Id 是主键。如果两个表中都存在 Id=1,则其他值也应该匹配。目前我正在使用这种说法。
SELECT COUNT(*)
FROM ##Table1 t1 ,
##Table2 t2
WHERE t1.Id = t2.Id
AND ( t1.Name != t2.name
OR t1.Country != t2.Country
)
表有太多列,因此这变得太笨重了。有更好的方法吗?
最佳答案
SELECT COUNT(*)
FROM ##Table1 t1
JOIN ##Table2 t2
ON t1.Id = t2.Id
AND EXISTS (SELECT t1.*
EXCEPT
SELECT t2.*)
关于sql - 计算不匹配的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18700703/