1.7 KiB
1.7 KiB
逻辑运算符
逻辑运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
AND |
如果两个值都为真,则为真。 | a AND b |
OR |
如果其中一个值为真,则为真。 | a OR b |
NOT |
如果值为假,则为真。 | NOT a |
NULL对逻辑运算符的影响
如果表达式的一侧或两侧为NULL,则AND比较的结果可能是NULL。如果AND运算符至少一侧为FALSE,则表达式的计算结果为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
如果表达式的一侧或两侧为NULL,则OR比较的结果可能是NULL。如果OR运算符至少一侧为TRUE,则表达式的计算结果为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
下面的真值表展示了如何处理AND和OR中的NULL:
| a | b | a AND b | a OR b |
|---|---|---|---|
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
NULL |
NULL |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
NULL |
FALSE |
NULL |
NULL |
TRUE |
NULL |
TRUE |
NULL |
FALSE |
FALSE |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL的逻辑补运算结果为NULL,如以下示例所示:
SELECT NOT CAST(null AS boolean); -- null
下面的真值表展示了如何处理NOT中的NULL:
| a | NOT a |
|---|---|
TRUE |
FALSE |
FALSE |
TRUE |
NULL |
NULL |