逻辑运算符

Polars SQL 支持具有 SQL 三值布尔语义的 ANDORNOT 逻辑运算符。

运算符

运算符

说明

示例

AND

两个值均为 true 时为 true

a AND b

OR

任一值为 true 时为 true

a OR b

NOT

该值为 false 时为 true

NOT a

NULL 对逻辑运算符的影响

如果表达式的一侧或两侧为 NULLAND 比较的结果可能为 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

如果表达式的一侧或两侧为 NULLOR 比较的结果可能为 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

下列真值表展示了 ANDORNULL 的处理方式:

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

下列真值表展示了 NOTNULL 的处理方式:

a

NOT a

TRUE

FALSE

FALSE

TRUE

NULL

NULL