2015-12-21 62 views
1

有兩個表NewEmployee,Oldemployee。它們包含相同的列(Empid,Name)。 NewEmployee包含來自oldEmployee以及其他人的記錄。如果NewEmployee包含OldEmployee記錄或其他'N',我需要新列'IsOld'來顯示'​​Y'。請幫助我查詢。比較新舊錶和顯示標誌列中的差異

回答

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