Как найти максимальное значение из параметра с несколькими значениями? - PullRequest
1 голос
/ 08 июня 2011

У меня есть параметр множественного выбора (@month), в котором перечислены все 12 месяцев. Метка - это сокращение (Jan, Feb), значение - целое число за месяц (1, 2).

У меня есть еще один внутренний параметр (@maxmonth), в котором я хочу сохранить максимальный выбранный месяц. Поэтому, если пользователь выбрал январь и март, @maxmonth будет = 3.

Есть идеи?

1 Ответ

2 голосов
/ 08 июня 2011

В вашей хранимой процедуре вам нужно установить @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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...