For what x is
The expression
x IS NOT NULLisnot equal toNOT(x IS NULL), as is the case in 2VL
(quote from this answer, which is quoting Fabian Pascal Practical Issues in Database Management – A Reference for the Thinking Practitioner — near the end of that answer)
My guess is when This guess was incorrect.x IS NULL is NULL, but I cannot guess when that would be (i.e. I haven’t checked the SQL standard).
From what I’ve read, Fabian Pascal is not referring to a scalar value in comparison to Null but the rarely implemented ROW type. In the standard, the idea was that you could compare a table (of rows) using
IS NULLto determine if all values were set to the NULL value. Thus,X IS NULLwould imply all values were set to the NULL value,X IS NOT NULLwould mean no values were set to the NULL value andNOT (X IS NULL)would mean that not all values were set to the NULL value or, said another way, there existed at least one value not set to NULL. Granted, I’m treading lightly on the shoulders of giants here, but that’s how I interpret his statement.