我是新手,所以如果这是一个愚蠢的问题,请原谅。
是否可以使用带有列表的 CASE 语句作为结果?
WHERE
Service.Closed_Flag = 'False'
AND Service.Board_name = CASE
WHEN @SORT = 'True'
THEN (@BOARD)
ELSE Service.Board_name
END
@SORT 是布尔值
@BOARD 是一个下拉列表,带有允许多个选择的选项
上面的代码工作正常,除非我为@BOARD 参数选择多个选项,从而生成一个列表。
我希望我可以在 CASE 语句中使用 IN,THEN IN(@BOARD)?
解决方案:我在发布后不久就找到了解决问题的方法,似乎总是发生在我身上。在另外 7 个小时过去之前,我无法回答我的问题,这是我的解决方案:
CASE 只返回一个标量值。
我将我的陈述调整为以下解决了我的问题:
WHERE
Service.Closed_Flag = 'False'
AND ((@SORT = 'True' AND Service.Board_name IN (@BOARD))
OR
(@SORT = 'False' AND Service.Board_name = Service.Board_name))