逻辑运算符¶
Polars SQL 支持具有 SQL 三值布尔语义的 AND、OR 和 NOT 逻辑运算符。
运算符¶
运算符 |
说明 |
示例 |
|---|---|---|
|
两个值均为 true 时为 true |
a AND b |
|
任一值为 true 时为 true |
a OR b |
|
该值为 false 时为 true |
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 |
|---|---|
|
|
|
|
|
|