簡體   English   中英

如何在SSRS中使用帶有CASE表達式的多值參數?

[英]How do I use a multi-value parameter with a CASE expression in SSRS?

我正在嘗試使用一個case表達式來標記哪些記錄具有我的參數中列出的任何ID。 我的代碼是這樣的:

SELECT 
TRANSACTION_ID,
CASE WHEN CUSTOMER_ID IN (@PARAMETER) THEN 1 ELSE 0 END AS CUSTOMER_CLASS

如果我僅在請求一個參數時使用一個值,但如果我輸入多個,則它會很好地工作:在需要條件的上下文中指定的非布爾類型的表達式,在','附近。

我嘗試了幾種方法,包括將參數視為逗號分隔的字符串,並嘗試解析子字符串。 我不知道如何傳遞參數,但是我一直遇到問題。

我機智。 誰能指出我正確的方向?

根據您的要求,您應該進行動態查詢。 下面的代碼工作完美。

        Declare  @sql varchar(max), 
                 @PARAMETER varchar(100) = '1,2,3,4' //For ex
        set @sql = 
            'SELECT 
            TRANSACTION_ID,
            CASE WHEN CUSTOMER_ID IN ('+@PARAMETER+') THEN 1 ELSE 0 END AS CUSTOMER_CLASS'; 
Execute(@sql)
case when [ReturnedBy] IN (SELECT Split FROM [dbo].[ufn_Split](@param_1, ',')) then 1 else 0 end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM