Boolean Logic
- reference
 
Some clauses, such asWHERE,WHEN, andHAVING, require values to be interpreted as Boolean values.
The following rules apply when evaluating these types of clauses:
- 
MISSING, NULL, and FALSE are FALSE
 - 
numbers +0, -0, and NaN are FALSE
 - 
empty strings, arrays, and objects are FALSE
 - 
all other values are TRUE
 
Four-valued logic
In SQL++, Boolean propositions can evaluate to NULL or MISSING (as well as to TRUE and FALSE).
The following table describes how these values relate to the logical operators:
| a | b | a AND b | a OR b | NOT a | 
|---|---|---|---|---|
TRUE  | 
TRUE  | 
TRUE  | 
TRUE  | 
FALSE  | 
FALSE  | 
FALSE  | 
TRUE  | 
||
NULL  | 
NULL  | 
TRUE  | 
||
MISSING  | 
MISSING  | 
TRUE  | 
||
FALSE  | 
TRUE  | 
FALSE  | 
TRUE  | 
TRUE  | 
FALSE  | 
FALSE  | 
FALSE  | 
||
NULL  | 
FALSE  | 
NULL  | 
||
MISSING  | 
FALSE  | 
MISSING  | 
||
NULL  | 
TRUE  | 
NULL  | 
TRUE  | 
NULL  | 
FALSE  | 
FALSE  | 
NULL  | 
||
NULL  | 
NULL  | 
NULL  | 
||
MISSING  | 
MISSING  | 
NULL  | 
||
MISSING  | 
TRUE  | 
MISSING  | 
TRUE  | 
MISSING  | 
FALSE  | 
FALSE  | 
MISSING  | 
||
NULL  | 
MISSING  | 
NULL  | 
||
MISSING  | 
MISSING  | 
MISSING  |