Я часто использовал синтаксис integer = ANY(integer[])
, но теперь ЛЮБОЙ оператор не работает. Это первый раз, когда я использую его для сравнения скаляра с целым числом, возвращаемым из CTE, но я думал, что это не должно вызывать проблем.
Мой запрос:
WITH bar AS (
SELECT array_agg(b) AS bs
FROM foo
WHERE c < 3
)
SELECT a FROM foo WHERE b = ANY ( SELECT bs FROM bar);
Когда я запустил его, он выдает следующую ошибку:
ОШИБКА: оператор не существует: integer = integer []: WITH bar AS ( SELECT array_agg (b) AS bs FROM foo WHERE c < 3) SELECT a FROM foo WHERE b = ANY (SELECT bs FROM bar)
Подробности в SQL-скрипте.
Так что я делаю неправильно?