[PostgreSQL] min/max двух элементов

oleg1331

нужно взять min/max двух элементов
* max(1,2) не работает, т.к max - агрегирующая функция, и для нескольких аргументов не определена
* max(array[1,2]) тоже не работает. почему - не знаю. выдает сам массив
есть ли готовое решение, или нужно определять свою функцию?

oleg1331

на правах изврата можно и так сделать:

select case when 1>2 then 1 else 2 end;

а так как у меня все это в PL/PgSQL, я пока делаю так:

IF prof_start > ts THEN
ts = prof_start;
END IF;
IF prof_end < te THEN
te = prof_end;
END IF;

rosali

9.13.4. GREATEST and LEAST
GREATEST(value [, ...])
LEAST(value [, ...])
The GREATEST and LEAST functions select the largest or smallest value from a list of any number of expressions. The expressions must all be convertible to a common data type, which will be the type of the result (see Section 10.5 for details). NULL values in the list are ignored. The result will be NULL only if all the expressions evaluate to NULL.
Note that GREATEST and LEAST are not in the SQL standard, but are a common extension.

источник

oleg1331

спасибо). как раз то,что искал.
Оставить комментарий
Имя или ник:
Комментарий: