Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Max from list of values  [new]
Siquel
Guest
как получить максимальное число из списка значений ? :

DECLARE @d1 int, @d2 int, @d3 int, @d4 int
SET @d1=5
SET @d2=15
SET @d3=55

SET @d4=Max(@d1, @d2, @d3)

print @d4

на это ругается :
Server: Msg 174, Level 15, State 1, Line 6
The Max function requires 1 arguments.
23 сен 04, 01:33    [980768]     Ответить | Цитировать Сообщить модератору
 Re: Max from list of values  [new]
Денис Авилов
Member

Откуда: Украина, Днепропетровск
Сообщений: 185
Siquel
как получить максимальное число из списка значений ?


Один из вариантов:

CREATE FUNCTION _Max(@A Int, @B Int)
RETURNS INT
AS
BEGIN
  RETURN (CASE WHEN @A > @B THEN @A ELSE @B END)
END
GO

DECLARE @d1 int, @d2 int, @d3 int, @d4 int
SET @d1=5
SET @d2=15
SET @d3=55


SET @d4 = DBO._Max(DBO._Max(@d1, @d2), @d3)

print @d4

А ругался он у те бя потому, что MAX - это функция аггрегирования, ее можно использовать только в запросах, напр. SELECT MAX(sum) FROM sales
23 сен 04, 02:16    [980779]     Ответить | Цитировать Сообщить модератору
 Re: Max from list of values  [new]
Алексей2003.
Guest
DECLARE @d1 int, @d2 int, @d3 int, @d4 int
SET @d1=5
SET @d2=15
SET @d3=55

select @d4=Max(n) from (select @d1 n union all select @d2 union all select @d3) a

print @d4
23 сен 04, 07:30    [980839]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить