逻辑运算符¶
逻辑运算符¶
运算符 |
描述 |
示例 |
---|---|---|
|
如果两个值都为真,则为真 |
a AND b |
|
如果任一值为真,则为真 |
a OR b |
|
如果值为假,则为真 |
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 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如下例所示,NULL
的逻辑补码为 NULL
SELECT NOT CAST(null AS boolean); -- null
下表演示了在 NOT
中处理 NULL
的情况
a |
NOT a |
---|---|
|
|
|
|
|
|