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

=null

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

NULL AND TRUE

=null

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

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

NULL AND FALSE

=false

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

NULL OR TRUE

=true

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

NULL IS NULL

=ture

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

 

おわり

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

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

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

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

コメント

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