如果这样的事情已经出现,请提前道歉,但我找不到它。
我已经声明了一个包含ID列表的临时表@x
。
在我的主查询中,我想检查特定记录ID
是否出现在@x
表中,然后分别返回'Yes'
或'No'
。
我在声明时尝试了以下案例:
select (case when xsup_ID in @x then 'YES' else 'NO' end) as Ins
但是我在运行时遇到错误:
在上下文中指定的非布尔类型的表达式 条件是预期的
和
'@x'附近的语法不正确
是否可以使用上述声明,如果没有,那么解决此问题的最佳方法是什么?
答案 0 :(得分:0)
select (case when xsup_ID in (select id from @x) then 'YES' else 'NO' end) as Ins
即。你的IN应该测试一个列的子查询,而不是表变量本身。
答案 1 :(得分:0)
select (case when CHARINDEX(xsup_ID ,@x) > 0 then 'YES' else 'NO' end)