sql >> Base de Datos >  >> RDS >> Oracle

¿SQL no muestra valores nulos en una consulta que no es igual?

En varios idiomas, NULL se maneja de manera diferente:la mayoría de las personas conocen la lógica de dos valores donde true y false son los únicos valores comparables en expresiones booleanas (incluso si es falso se define como 0 y verdadero como cualquier otra cosa).

En SQL estándar, debe pensar en la lógica de tres valores. NULL no se trata como un valor real, podría llamarlo "desconocido". Entonces, si se desconoce el valor, no está claro si en su caso state es 0, 1, o cualquier otra cosa. Entonces NULL != 1 resultados a NULL de nuevo.

Esto concluye que siempre que filtre algo que puede ser NULL, debe tratar los valores NULL por sí mismo. Tenga en cuenta que la sintaxis también es diferente:los valores NULL solo se pueden comparar con x IS NULL en lugar de x = NULL . Consulte Wikipedia para obtener una tabla de verdad que muestre los resultados de las operaciones lógicas.