Zwykle używam dopasowania do wzorca za pomocą słowa kluczowego „nie w”.
SELECT kolom1 from tabel where kategori not in ('A', 'B')
Następnie próbowałem użyć słowa kluczowego „nie lubię żadnego”
SELECT kolom1 from tabel where kategori not like any (array['A', 'B'])
Myślę, że wynik będzie taki sam. Ale po uruchomieniu wyniki są różne. Jestem ciekaw, dlaczego wyniki są różne i po tym, jak dowiem się, jak działa słowo kluczowe any, zwróci true, jeśli jeden z elementów zostanie spełniony. Jeśli więc element A zostanie porównany ze słowem kluczowym not like any, będzie to prawda, ponieważ spełnia kryteria, a nie jeden z elementów tablicy, czyli B. I odwrotnie. Chociaż pożądanym wynikiem nie jest ani element A, ani element B. Aby odpowiedzieć na ten problem, używane jest słowo kluczowe „nie jak wszystkie”.
SELECT kolom1 from tabel where kategori not like all (array['A', 'B'])
Odniesienie
przepełnienie stosu