邏輯運算子

邏輯運算子

運算子

描述

範例

AND

當兩個值都為 true 時為 true

a AND b

OR

當任一值為 true 時為 true

a OR b

NOT

當值為 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

下列表格示範了在 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