我有一个多选参数(@month
),列出了所有12个月。标签是缩写(Jan, Feb
),值是月份的整数(1, 2
)。
我有另一个内部参数(@maxmonth
),我想要存储所选的最大月份。因此,如果用户选择了1月和3月,@maxmonth
将= 3。
有什么想法吗?
答案 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