用于检查字段是否在临时表中的SQL Case When语句

用于检查字段是否在临时表中的SQL Case When语句,sql,sql-server-2012,Sql,Sql Server 2012,如果已经发生类似的事情,我会提前道歉,但我找不到 我声明了一个临时表@x,其中包含ID列表 在我的主查询中,我想检查一条特定的记录ID是否出现在@x表中,然后分别返回'Yes'或'No' 我在陈述时尝试了以下情况: select (case when xsup_ID in @x then 'YES' else 'NO' end) as Ins 但我在运行它时出错: 在上下文中指定的非布尔类型的表达式,其中 情况是预料之中的 及 “@x”附近的语法不正确 是否有可能使用上述声明?如果没有,最好的

如果已经发生类似的事情,我会提前道歉,但我找不到

我声明了一个临时表
@x
,其中包含ID列表

在我的主查询中,我想检查一条特定的记录
ID
是否出现在
@x
表中,然后分别返回
'Yes'
'No'

我在陈述时尝试了以下情况:

select (case when xsup_ID in @x then 'YES' else 'NO' end) as Ins
但我在运行它时出错:

在上下文中指定的非布尔类型的表达式,其中 情况是预料之中的

“@x”附近的语法不正确

是否有可能使用上述声明?如果没有,最好的解决方法是什么

select (case when xsup_ID in (select id from @x) then 'YES' else 'NO' end) as Ins
i、 您的IN应该针对一列的子查询而不是表变量本身进行测试

select (case when CHARINDEX(xsup_ID ,@x) > 0 then 'YES' else 'NO' end)