SSRS - 带有List作为结果的CASE语句

时间:2013-10-11 12:10:53

标签: reporting-services case

我是新手,所以请原谅我这是一个愚蠢的问题。

是否可以使用带有List的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,那么(@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))

1 个答案:

答案 0 :(得分:0)

我发布后不久就找到了解决问题的方法,似乎总是发生在我身上。

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)
    )