Nå, jeg er ikke sikker på, om dette er bedre , men det kan være lidt mere kortfattet at bruge LNNVL
, en funktion (som du kun kan bruge i en WHERE
klausul), som returnerer TRUE
hvis et givet udtryk er FALSE
eller UNKNOWN (NULL
). For eksempel...
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);
... returnerer alle undtagen rækken, hvor X =1 og Y =2.