LEAST в PostgreSQL: минимум из значений и NULL
LEAST выбирает наименьшее из переданных значений. В PostgreSQL значения NULL пропускаются; результат будет NULL только тогда, когда все аргументы равны NULL.
Проверяемые примеры
SELECT LEAST(5, 10); -- 5
SELECT LEAST(10, NULL, 5); -- 5
SELECT LEAST(NULL, NULL); -- NULLВо втором случае результат 5. Утверждение, что любой аргумент NULL обязательно делает результат NULL, для PostgreSQL неверно.
Согласуйте типы
Аргументы должны приводиться к общему типу. Для строк результат зависит от правил сравнения и сортировки. Не смешивайте числовые значения с произвольными строками, надеясь на одинаковое поведение всех СУБД.
LEAST или MIN?
-- Меньшее из двух полей каждой строки
SELECT LEAST(price, limit_price) FROM offers;
-- Минимум по всем строкам
SELECT MIN(price) FROM offers;Первый запрос возвращает значение для каждой исходной строки. Второй агрегирует строки. Примеры предполагают существование таблицы offers с соответствующими числовыми полями.