データベース
SQL における NULL 値の比較について、次の条件式の評価結果として正しいものはどれか。 ```sql SELECT CASE WHEN NULL = NULL THEN 'TRUE' WHEN NULL <> NULL THEN 'FALSE' ELSE 'UNKNOWN' END; ```
ア.TRUE
イ.FALSE
ウ.実行時エラーになる
エ.UNKNOWN正解
解説
SQL の NULL は「答えが不明な謎の箱」。謎の箱と謎の箱が同じかどうか聞いても「分からない(UNKNOWN)」としか言えない。NULL = NULL は TRUE でも FALSE でもなく UNKNOWN。これが SQL の3値論理(TRUE/FALSE/UNKNOWN)の核心。
なぜ エ が正解か
SQL では NULL は「値が不明」を表すため、NULL との比較は常に UNKNOWN を返す。NULL = NULL も FALSE ではなく UNKNOWN。NULL <> NULL も UNKNOWN。したがって WHEN 節がすべて UNKNOWN(非真)となり、ELSE 節が実行されて UNKNOWN が返される。NULL の判定には IS NULL または IS NOT NULL を使う必要がある。
出典: AI生成問題(学習用)