比较旧表和新表并在标志列中显示idifference

时间:2015-12-21 15:54:38

标签: sql-server oracle

有两个表NewEmployee,Oldemployee。它们包含相同的列(Empid,Name)。 NewEmployee包含来自oldEmployee以及其他人的记录。如果NewEmployee包含OldEmployee记录或“N”,我需要新列'IsOld'来显示'​​Y'。请帮我查询。

1 个答案:

答案 0 :(得分:5)

尝试这样的事情

select N.Empid,
       N.Name,
       case when O.Empid is NULL then 'N' else 'Y' END as IsOld
from NewEmployee N
left outer join Oldemployee O
             on N.Empid = O.Empid
LEFT OUTER JOIN表中没有匹配项时,

NULL将返回Oldemployee,我们可以通过该表设置IsOld标记。

Case声明替代

  • 对于Oracle:解码&的 IIF
  • 对于Sql Server 2012+: IIF