2013-10-11 31 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) 
    )