На SQL Server, как найти значение MAX или MIN из пары переменных - PullRequest
6 голосов
/ 13 октября 2011

Я только что узнал, что функция MAX () в SQL работает только со столбцами.

Есть ли подобная функция, которую я могу использовать, чтобы найти максимальное значение, например, из эти четыре переменные?

SET @return = MAX(@alpha1, @alpha2, @alpha3, @alpha4)

Или я должен сначала поместить их в столбец (и, таким образом, сначала создать таблицу ... ;-()?

Привет

Lumpi

1 Ответ

10 голосов
/ 13 октября 2011

Для этого в T-SQL нет встроенной функции, но вы можете использовать следующие

SELECT @result = MAX(alpha)
FROM   (SELECT @alpha1
        UNION ALL
        SELECT @alpha2
        UNION ALL
        SELECT @alpha3) T(alpha);  

или (SQL Server 2008 +)

SELECT @result = MAX(alpha)
FROM  (VALUES(@alpha1),
             (@alpha2),
             (@alpha3)) T(alpha);  
...