Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Gibt es einen besseren Oracle-Operator, um eine nullsichere Gleichheitsprüfung durchzuführen?

Nun, ich bin mir nicht sicher, ob das besser ist , aber es könnte etwas prägnanter sein, LNNVL zu verwenden , eine Funktion (die Sie nur in einem WHERE verwenden können -Klausel), die TRUE zurückgibt wenn ein gegebener Ausdruck FALSE ist oder UNBEKANNT (NULL ). Zum Beispiel...

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);

...gibt alles außer der Zeile zurück, in der X =1 und Y =2.