在where语句中执行sql查询时的错误消息

vjhs03f7  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(360)

我已经使用SQLServerManagementStudio创建了一个sql查询,但是在where语句中遇到了错误。
在这里 WHERE sql代码的子句:

where 
       (case when 'All' in (select Items from CDB.dbo.Split (@a,','))
        then  innt.code**IS**NOT NULL
        else  innt.code in (select Items from CDB.dbo.Split (@a,',')) end) and

我收到以下错误消息:
消息156,15级,状态1,第90行
关键字“is”附近的语法不正确。
消息156,级别15,状态1,行92
关键字“and”附近的语法不正确。
你们能帮我解决这个问题吗?

wn9m85ua

wn9m85ua1#

布尔不是sql server中的类型。所以 case 无法返回布尔表达式。
所以,就用常规的比较

where ('All' in (select Items from CDB.dbo.Split(@a, ',') and innt.code IS NOT NULL) or
      (innt.code in (select Items from CDB.dbo.Split(@a, ',') )

相关问题