我有两种看法。两个视图的大多数列都相同。 View1有20列,而View2有22列。 View2具有与View1相同的20列。 现在,我想查询一下这20个公用列中的数据是否相同,如果不相同,我想获取这些记录
View1
Columns FN LN EmpID
a b 1
c d 2
View2
Columns FN LN EmpID
a b 1
c b 2
我想要一个查询,我可以在其中检查View1和View2之间的列值是否存在任何不匹配,以及是否存在不匹配而不是返回该记录的情况。就像查询应返回View2的第二条记录一样,因为它与View1的第二条记录不匹配
答案 0 :(得分:1)
您可以使用EXCEPT而不是必须对所有列进行JOIN。这将为您提供View1中与View2中不匹配的所有内容:
SELECT [Col1], [Col2], [Col5]
FROM VIEW1
EXCEPT
SELECT [Col1], [Col2], [Col5]
FROM VIEW2
答案 1 :(得分:0)
select *
from view1 a , view2 b
where a.Columns = b.Columns
having ( a.FN <> b.FN or a.LN <> b.LN or a.EmpID <> b.EmpID )