Sql 如何在where子句的case语句中使用not in condition

Sql 如何在where子句的case语句中使用not in condition,sql,Sql,我试图将not in condition与SQL中的条件联接一起使用,但我得到了一个错误 select * FROM #tmpInterfaceUpdateTriger tmpTrg INNER JOIN Interface.InterfaceTrigger trg (NOLOCK) ON tmpTrg.InterfaceTriggerID = trg.InterfaceTriggerId INNER JOIN DataCollection.NonCustodialPar

我试图将not in condition与SQL中的条件联接一起使用,但我得到了一个错误

select * FROM #tmpInterfaceUpdateTriger tmpTrg 

INNER JOIN Interface.InterfaceTrigger trg (NOLOCK) ON   
       tmpTrg.InterfaceTriggerID = trg.InterfaceTriggerId
INNER JOIN DataCollection.NonCustodialParentRelationship ncrp                  
     ON trg.InterfaceTriggerCode NOT IN                                      
     case when trg.IndividualId = ncrp.ChildIndividualId
             then ('AddressChange','EmploymentChange','GoodCauseChange','AbsentParentChange','CSSanctions') end

您的查询应该是这样的

SELECT
  *
FROM #tmpInterfaceUpdateTriger tmpTrg

INNER JOIN Interface.InterfaceTrigger trg (NOLOCK)
  ON tmpTrg.InterfaceTriggerID = trg.InterfaceTriggerId
INNER JOIN DataCollection.NonCustodialParentRelationship ncrp
  ON trg.IndividualId = ncrp.ChildIndividualId
WHERE trg.InterfaceTriggerCode NOT IN ('AddressChange', 'EmploymentChange', 'GoodCauseChange', 'AbsentParentChange', 'CSSanctions')

一般来说,在
WHERE
ON
子句中使用
/
而不是
大小写
表达式要好得多。似乎您想在
trg.IndividualId=ncrp.ChildIndividualId和trg.InterfaceTriggerCode中加入('AddressChange'、'EmploymentChange'、'GoodCauseChange'、'AbsentParentChange'、'CSResponses')
。如果
trg.IndividualId
没有匹配的
ncrp.ChildIndividualId
,您是否也要加入记录?如果是,基于什么条件?我不能使用上述查询,因为基于IndividualId,我需要将不在条件更改为well@AnubhootiBhatnagar-然后使用
进行第二次
不在
状态。您应该劳工处亦在问题中提出了这项条件。