応用情報暗記無料で始める

NULLの扱いと三値論理とは?なるのあつかいとさんちろんり

NULLの扱いと三値論理とは、値が入っていないことを表すNULLは、0や空文字とは別の標識である。値が分からない以上、比較の結果も真偽を決められないため、SQLは真・偽・不明(UNKNOWN)の三値で条件を評価する。WHERE句が返すのはTRUEの行だけなので、UNKNOWNになった行は結果から落ちる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では2回出題されています(2017年度〜2018年度)。

応用情報技術者試験の頻出用語/テクノロジ系

別名:NULLと三値論理、NULLと3値論理、NULL、三値論理、3値論理、UNKNOWN

この語が出る過去問を解く →

背景

業務データには、まだ決まっていない退職日や、そもそも該当しない配偶者名のように、値を置けない欄が必ず生じる。ここに0や空文字を入れると、集計や比較で本物の0や空文字と区別できなくなる。「値が無い」を独立した標識として持つ代わりに、比較が真偽へ落ちないという副作用を三値論理で引き受けた——この取引の結果が、SQLの数々の落とし穴になっている。

具体例

退職日がNULLの在職者を残したくて「退職日 <> '2025-03-31'」と書くと、NULL行はUNKNOWNとなって結果から消える。意図どおりにするには「退職日 IS NULL OR 退職日 <> '2025-03-31'」と書くか、COALESCEで既定値へ置き換えてから比較する。

試験での引っ掛け

NULL = NULL は真ではなく不定で、比較演算子では決して真にならないためIS NULLを使う。NOT INの副問合せ結果にNULLが1つでも混ざると全体が不定になり0件になる罠がある。集約関数はCOUNT(*)を除きNULLを無視するのでCOUNT(列)は全行数と一致せず、AVGの分母も減る。NULLどうしは=で等しくならないのにGROUP BYでは同じグループにまとめられる点も狙われる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2017年度〜2018年度)
  • 分野:テクノロジ系
  • NULL = NULL は真ではなく不定で、比較演算子では決して真にならないためIS NULLを使う。