sql >> Base de Datos >  >> RDS >> PostgreSQL

Error al usar la coincidencia de patrones no como ninguna en PostgreSQL

Por lo general, uso la coincidencia de patrones con la palabra clave "not in".

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

Luego traté de usar la palabra clave "no me gusta ninguno"

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

Creo que el resultado será el mismo. Pero después de ejecutar los resultados son diferentes. Tengo curiosidad por qué los resultados son diferentes y después de averiguar cómo funciona cualquier palabra clave es que volverá verdadero si se cumple uno de los elementos. Entonces, si el elemento A se compara con la palabra clave not like any, será verdadero porque cumple con los criterios, no con uno de los elementos de la matriz, es decir, B. Y viceversa. Mientras que el resultado deseado no es ni el elemento A ni el elemento B. Para responder a este problema, se utiliza la palabra clave "no como todos".

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

Referencia
desbordamiento de pila