Chà, tôi không chắc cái này có tốt hơn không , nhưng có thể ngắn gọn hơn một chút khi sử dụng LNNVL
, một hàm (mà bạn chỉ có thể sử dụng trong WHERE
mệnh đề) trả về TRUE
nếu một biểu thức nhất định là FALSE
hoặc UNKNOWN (NULL
). Ví dụ ...
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);
... sẽ trả về tất cả trừ hàng có X =1 và Y =2.