我有两个具有完全相同结构的表,即相同的列。我想找出两个表中存在的行数,但所有列的匹配值不完全相同。例如。表包含列号,名称,国家/地区。 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
)
表有太多列,因此这变得太过笨拙。有没有更好的方法呢?
答案 0 :(得分:4)
SELECT COUNT(*)
FROM ##Table1 t1
JOIN ##Table2 t2
ON t1.Id = t2.Id
AND EXISTS (SELECT t1.*
EXCEPT
SELECT t2.*)
答案 1 :(得分:0)
也许你可以将列连接成一个字段并检查这种方式是否相等?