第1条 四則演算
数値と NULL を加算、減算、乗算、除算する場合、プログラムは NULL を認識しないため、演算結果がどうなるかがわかりません。そのため、最終的には NULL を返すことしかできません。
第2条 比較演算
数値、文字列、または日付を NULL と比較する場合、プログラムはどちらが NULL より大きいか小さいか、またはそれらが同じ値であるかどうかを知りません。そのため、プログラムは「わかりません」と答えることしかできません。比較結果がTrueデータを返します。IS NULLとIS NOT NULLの意味がわかりました。これら 2 つの述語は、特に NULL 値の処理を担当します。
第3条 グループ別
このようにして group by の実行ロジックを理解することができます 例えば、集計キーに a、b、c の 3 つの非 NULL 値があり、各行を自動的にループし、その値を比較します各行に a、b、c があり、それらが等しい場合、その結果、NULL 値が見つかった場合、プログラムは比較できないため、方法がなくなり、最終的に NULL は 1 つのカテゴリのみに分割されます。
第4条 パラメータの受け渡し
同様に、 NULL が算術関数、文字列関数、日付関数、変換関数にパラメーターとして渡された場合、プログラムは NULL を認識せず、その処理方法を知らないため、結果は NULL のみを返すことができます。
第 5 節 集計関数
上で述べたとおり、NULL 値は比較できず、計算にも参加できないため、集計関数はより賢く、最初に NULL 値を自動的に除外し、残りの値についてのみ計算を実行するため、 NULL 値に遭遇するとすぐに使えなくなるのは恥ずかしいことです。
COUNT (特定の列)、この列に NULL 値が含まれている場合、最初に NULL 値のデータも削除され、NULL 以外の値を持つ行数のみが返されるため、取得したい場合はNULL 値を含むすべての行の数を指定するには、 COUNT(*) を使用する必要があります。
第7条 order by
order byの実行ロジックにも比較処理があり、すべての値はサイズを比較してソートされ、NULL値は他の値と比較できません。そのため、order byを設計する際には、単にNULLだけを取り出すか、それらをすべて先頭に配置するか、最後に配置するかによって、RDBMS ごとに設計が異なり、NULL 値と NULL 値の間の順序はランダムになります。