Quando você faz
select 2 != any(array[2,3,4]);
?column?
----------
t
2
será comparado a todos os itens do array e se houver algum para o qual 2
não for igual será avaliado como true
. Use
not id = any(array[2,3,4])
select not 1 = any(array[2,3,4]);
?column?
----------
t
select not 2 = any(array[2,3,4]);
?column?
----------
f
Ou
!= all
select 1 != all(array[2,3,4]);
?column?
----------
t
select 2 != all(array[2,3,4]);
?column?
----------
f