一千萬個為什麽

搜索

如何從多值參數中找到最大值?

我有一個多選參數( @month ),列出了所有12個月。標簽是縮寫( Jan,Feb ),值是月份的整數( 1,2 )。

我有另一個參數( @maxmonth ),我想要存儲所選的最大月份。所以如果用戶選擇了1月和3月,那麽 @maxmonth = 3。

有任何想法嗎?

最佳答案

在存儲過程中,您需要將@maxmonth設置為@month的最後一個值。由於SQL Server將多值參數視為逗號分隔的字符串,因此以下內容將幫助您獲取最後一個值。

-- Check to see if only one value was selected
IF CHARINDEX(',', @month) = 0
    BEGIN 
        SET @maxmonth = @month
    END
ELSE
    BEGIN
        SET @maxmonth = RIGHT(@month, CHARINDEX(',', REVERSE(@month)) - 1)
    END
PRINT @maxmonth 

Now, if the multi-value parameter needs to first be sorted then you'll need to do a bit more work. See the following blog post to see how you can handle this situation: http://weblogs.asp.net/jmoon/archive/2005/04/01/396649.aspx

轉載註明原文: 如何從多值參數中找到最大值?