, потому что corporate_complaint_type_ids
не целое число, а массив целых чисел ... Вы не можете:
select '{2,3,4}'::int[] = ANY(ARRAY[1,3]::integer[]);
ERROR: operator does not exist: integer[] = integer
LINE 1: select '{2,3,4}'::int[] = ANY(ARRAY[1,3]::integer[]);
Вместо этого вы можете проверить, перекрываются ли массивы :
postgres@pond93# select '{2,3,4}'::int[] && ARRAY[1,3]::integer[];
?column?
----------
t
(1 row)
или вы можете проверить одно значение массива по отношению к ЛЮБОМУ (массиву):
postgres@pond93# select ('{2,3,4}'::int[])[1] = ANY(ARRAY[1,3]::integer[]);
?column?
----------
f
(1 row)