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

¿Existe un mejor operador de Oracle para realizar una verificación de igualdad de seguridad nula?

Bueno, no estoy seguro si esto es mejor , pero podría ser un poco más conciso usar LNNVL , una función (que solo puedes usar en un WHERE cláusula) que devuelve TRUE si una expresión dada es FALSE o DESCONOCIDO (NULL ). Por ejemplo...

WITH T AS
(
    SELECT    1 AS X,    1 AS Y FROM DUAL UNION ALL
    SELECT    1 AS X,    2 AS Y FROM DUAL UNION ALL
    SELECT    1 AS X, NULL AS Y FROM DUAL UNION ALL
    SELECT NULL AS X,    1 AS Y FROM DUAL
)
SELECT
    *
FROM
    T
WHERE
    LNNVL(X <> Y);

... devolverá todo menos la fila donde X =1 e Y =2.