ISNULL然后等于另一列值

时间:2014-04-04 15:41:07

标签: sql sql-server

我有这个查询我试图解决问题,它使用一个完整的外连接与一些子查询。但是我对某些列标题TMS_ID获取Null,我试图让这些NULL TMS_IDs填充另一列Employee_ID的值。我试图让它像

一样运作
ISNULL(TMS_ID, Employee_ID) AS TMS_ID

这是可行的还是我需要另外一种方法来实现这个目标?

SELECT AC.REG_NR
    ,AC.DIS_NR
    ,AC.GEMSID
    ,AC.TMS_ID
    ,AC.EMP_NA
    ,AC.EMP_SEX_TYP_CD
    ,AC.EMP_EOC_GRP_TYP_CD
    ,AC.DIV_NR
    ,AC.CTR_NR
    ,AC.JOB_CLS_CD_DSC_TE
    ,AC.JOB_GRP_CD
    ,AC.Job_Function
    ,AC.Job_Group
    ,AC.Meeting_Readiness_Rating
    ,AC.Manager_Readiness_Rating
    ,CD.Employee_ID
    ,CD.Meeting_Readiness_Rating AS Expr1
    ,CD.Manager_Readiness_Rating AS Expr2
    ,CD.Meeting_End_Date
    ,CD.EmployeeFeedback
    ,CD.DevelopmentForEmployee1
    ,CD.DevelopmentForEmployee2
    ,CD.DevelopmentForEmployee3
    ,CD.DevelopmentForEmployee4
    ,CD.DevelopmentForEmployee5
    ,CD.Justification
    ,CD.Changed
    ,CD.Notes

1 个答案:

答案 0 :(得分:1)

喜欢

Case When  TMS_ID is null then Employee_ID
else TMS_ID end AS Calculated_TMS_ID

(OR)

COALESCE(TMS_ID,Employee_ID)

对于coalesce,它会检查TMS_ID是否为空,然后使用第一个non-nullable值;在这种情况下,它将使用Employee_ID

的值

(OR)

ISNULL ( TMS_ID,Employee_ID )

但请记住,Employee_ID必须与TMS_ID具有相同的类型,或者必须隐式转换为TMS_ID