3 value logic. Why is SQL so special?
what would be the consequences of NULL=NULL being true?
>>, what would be the consequences of NULL=NULL being true?
NULL=NULL should not be true.
NULL=NULL should not be false.
NULL=NULL should not be UNKNOWN.
NULL=NULL should be NULL. <<
NULL is a missing *attribute* value; UNKNOWN is a *logical* value. The
first rule of NULLs is that they propagate. You can easily set up
contradictions that depend on the order evaluation when you have a
BOOLEAN data type. All SQLK data types must allow NULLs by definition.
NULL OR TRUE = NULL -- by definition
UNKNOWN OR TRUE = TRUE -- by definition
NULL AND TRUE = NULL -- by definition
UNKNOWN AND TRUE = UNKNOWN -- by definition
This is why we have the
predicate in SQL-92