PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Errore nell'utilizzo della corrispondenza dei modelli non come in PostgreSQL

Di solito uso la corrispondenza dei modelli usando la parola chiave "non in".

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

Poi ho provato a usare la parola chiave "non come nessuno"

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

Penso che il risultato sarà lo stesso. Ma dopo aver eseguito i risultati sono diversi. Sono curioso di sapere perché i risultati sono diversi e dopo averlo scoperto, come funziona la parola chiave any è che restituirà true se uno degli elementi viene soddisfatto. Quindi se l'elemento A viene confrontato con la parola chiave non come nessuna, sarà vero perché soddisfa i criteri, non uno degli elementi nell'array, ovvero B. E viceversa. Sebbene il risultato desiderato non sia né l'elemento A né l'elemento B. Per rispondere a questo problema, viene utilizzata la parola chiave "non come tutti".

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

Riferimento
overflow dello stack