ええと、これがより良いかどうかはわかりません 、ただし、LNNVL
を使用する方が少し簡潔な場合があります 、関数(WHERE
でのみ使用できます 句)TRUE
を返します 指定された式がFALSE
の場合 またはUNKNOWN(NULL
)。例...
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);
... X=1およびY=2の行を除くすべてを返します。