2013-10-11 113 views
0

我是新来的,所以请原谅我,如果这是一个愚蠢的问题。SSRS - 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)) 
+0

从一些搜索,我发现以下几点: CASE只返回一个标量值。 我调整我的发言到解决我的问题如下: WHERE Service.Closed_Flag = 'FALSE' AND((@SORT = '真' AND Service.Board_name IN(@BOARD)) OR (@ SORT ='False'AND Service.Board_name = Service.Board_name)) – Morallis

回答

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