Top.Mail.Ru
Ответы

Предикаты ANY, ALL

Как сделать оправданное использование данных предикатов в запросе?
Если их убрать, то они работают.
with a(a) as (values 1,2,3,4,null)
SELECT a.a from a a where a != any (select max(a) from a) and a != any (select min(a) from a)

По дате
По рейтингу
Аватар пользователя
Новичок

Предикаты ANY и ALL имеют смысл, когда запрос внутри предиката может вернуть множество значений:
ANY - хотя бы одно значение в множестве соответствует условию (аналог IN / NOT IN).
ALL - абсолютно все значения в множестве соответствуют условию.

Но запросы select max(a) from a и select min(a) from a всегда возвращают единственное значение. Для них бессмысленно использовать предикаты множеств.



Видео по теме