PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro ao usar a correspondência de padrões não como nenhuma no PostgreSQL


Normalmente eu uso a correspondência de padrões usando a palavra-chave "not in".

SELECT kolom1 from tabel where kategori not in ('A', 'B')

Então tentei usar a palavra-chave "not like any"

SELECT kolom1 from tabel where kategori not like any (array['A', 'B'])

Acho que o resultado será o mesmo. Mas depois de executar os resultados são diferentes. Estou curioso porque os resultados são diferentes e depois que eu descobrir, como a palavra-chave any funciona é que ela retornará true se um dos elementos for atendido. Portanto, se o elemento A for comparado à palavra-chave diferente de qualquer, será verdadeiro porque atende aos critérios, não a um dos elementos da matriz, ou seja, B. E vice-versa. Embora o resultado desejado não seja o elemento A nem o elemento B. Para responder a esse problema, a palavra-chave "not like all" é usada.

SELECT kolom1 from tabel where kategori not like all (array['A', 'B'])

Referência
estouro de pilha