0

如果这样的事情已经出现,请提前道歉,但我找不到。

我已经声明了一个@x包含 ID 列表的临时表。

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

我在声明时尝试了以下情况:

select (case when xsup_ID in @x then 'YES' else 'NO' end) as Ins

但是我在运行它时遇到错误:

在预期条件的上下文中指定的非布尔类型的表达式

'@x' 附近的语法不正确

是否可以使用上述语句,如果没有,解决此问题的最佳方法是什么?

4

2 回答 2

1
select (case when xsup_ID in (select id from @x) then 'YES' else 'NO' end) as Ins

即您的 IN 应该针对一列的子查询进行测试,而不是针对表变量本身进行测试。

于 2013-05-03T11:39:21.667 回答
0
select (case when CHARINDEX(xsup_ID ,@x) > 0 then 'YES' else 'NO' end)
于 2013-05-03T11:43:03.950 回答