Разница между операторами ANY и ALL в PostgreSQL заключается в том, как они работают при сравнении значений:
- ANY позволяет сравнить значение с любым элементом в массиве. www.slingacademy.com Результатом будет «true», если хотя бы для одной строки условие истинно, и «false» в противном случае (в том числе, когда подзапрос не возвращает строк). postgrespro.ru
- ALL используется, когда нужно сравнить значение со всеми элементами в массиве. www.slingacademy.com Результатом будет «true», если условие истинно для всех строк (или если подзапрос не возвращает строк), или «false», если находятся строки, для которых оно ложно. postgrespro.ru
Ещё одно различие заключается в поведении, когда подзапрос не возвращает никаких значений: в такой ситуации ALL автоматически верен, а ANY автоматически неправилен. pgdocs.ru