論理演算子

演算子 説明
AND 両方の値が true の場合に true a AND b
OR どちらかの値が true の場合に true a OR b
NOT 値が false の場合に true NOT a

NULLが論理演算子に与える影響

AND比較の結果は、式のどちらかまたは両方がNULLの場合、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

OR比較の結果は、式のどちらかまたは両方がNULLの場合、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