如何从多值参数中找到最大值?

时间:2011-06-08 17:56:31

标签: sql-server reporting-services reporting

我有一个多选参数(@month),列出了所有12个月。标签是缩写(Jan, Feb),值是月份的整数(1, 2)。

我有另一个内部参数(@maxmonth),我想要存储所选的最大月份。因此,如果用户选择了1月和3月,@maxmonth将= 3。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在存储过程中,您需要将@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 

现在,如果需要首先对多值参数进行排序,那么您需要做更多的工作。请参阅以下博文,了解如何处理这种情况:http://weblogs.asp.net/jmoon/archive/2005/04/01/396649.aspx