比较两个表并根据两个条件选择记录 - 不存在且不匹配

时间:2015-02-19 21:47:12

标签: sql match

我有两个表,需要根据名字和姓氏进行比较。该场景就像该名称存在于一个而不是其他名称中。另一种情况是名称存在但由于拼写错误等不匹配。我可以使用NOT EXISTS获得非匹配记录但是我如何在table2中显示名称? 我的输出表应该有三列,如下所示 -

SL.No ---表2中不存在---表2中的名称

任何建议表示赞赏。

阿伦

1 个答案:

答案 0 :(得分:1)

select a.firstname
, b.firstname
, a.lastname
, b.lastname
, case 
    when a.firstname is null then 'B only'
    when b.firstname is null then 'A only'
    else 'both'
end
from TableA a
full outer join TableB b
    on b.firstname = a.firstname
    and b.lastname = a.lastname
order by coalesce (a.firstname, b.firstname)
, coalesce (a.lastname, b.lastname)