SQLでNULLが関わるとなぜ全部NULLになるのか

以下のサイトの例がわかりやすかったです。

NULLは「不明」と考えると全ての辻褄があう。

ここにあなたの部下のスタンという名前の30歳の男性がいます。
そこにもう一人の部下の男性オリバーが来ました。
オリバーの年齢は「不明(NULL)」です。

この状況下であなたは二人がどちらが歳をとっているかと聞かれたらどう答えれば良いでしょうか。
おそらくあなたは「不明(NULL)」と答えるでしょう。

だから、「NULL > 30 = NULL」なのです。

引用元:https://minegishirei.hatenablog.com/entry/2023/02/11/195506

NULL = 0

nullが不明なので、数値かどうかすらわからないのでnull

NULL = NULL

不明と不明が正しいか?も比較しようがないのでnull

NULL <> NULL

不明と不明が正しくないか?も比較しようがないのでnull

NULL AND TRUE

不明がTRUEの場合は結果はTRUEになるけど、FALSEかもしれない。

どちらかわからないのでnull

NULL AND FALSE

nullにどんな値が入ろうと、右辺がfalseの時点で条件を満たしていないので結果はfalse

NULL OR TRUE

nullにどんな値が入ろうと、右辺がtrueの時点で条件を満たしてるので結果はtrue

NULL IS NULL

NULLはNULLか?と聞いてるのと同じなので、結果true

おわり

SQL
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

タイトルとURLをコピーしました