逻辑运算符

逻辑运算符

运算符

描述

示例

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

下表演示了在 ANDOR 中处理 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