2011-06-08 87 views
1

我有一个多选参数(@month),列出所有12个月。标签是缩写(Jan, Feb),该值是该月的整数(1, 2)。如何从多值参数中找到最大值?

我还有一个参数(@maxmonth)即内部,我要存储在选择的最大的月份。因此,如果用户选择一月至三月,@maxmonth会= 3

任何想法?

+0

我不明白这个问题。你能提供一些细节吗? – ibram 2011-06-08 18:09:45

回答

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