Logical Operators
Logical Operators
Operator | Description | Example |
---|---|---|
| True if both values are true | a AND b |
| True if either value is true | a OR b |
| True if the value is false | NOT a |
Effect of NULL on Logical Operators
The result of an AND
comparison may be NULL
if one or both sides of the expression are NULL
. If at least one side of an AND
operator is FALSE
the expression evaluates to FALSE
:
SELECT CAST(null AS boolean) AND true; -- null
SELECT CAST(null AS boolean) AND false; -- false
SELECT CAST(null AS boolean) AND CAST(null AS boolean); -- null
The result of an OR
comparison may be NULL
if one or both sides of the expression are NULL
. If at least one side of an OR
operator is TRUE
the expression evaluates to TRUE
:
SELECT CAST(null AS boolean) OR CAST(null AS boolean); -- null
SELECT CAST(null AS boolean) OR false; -- null
SELECT CAST(null AS boolean) OR true; -- true
The following truth table demonstrates the handling of NULL
in AND
and OR
:
a | b | a AND b | a OR b |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The logical complement of NULL
is NULL
as shown in the following example:
SELECT NOT CAST(null AS boolean); -- null
The following truth table demonstrates the handling of NULL
in NOT
:
a | NOT a |
---|---|
|
|
|
|
|
|