これは 3 つの値を持つロジックです。http://en.wikipedia.org/wiki/Three-valued_logic を参照してください。また、SQL に固有の場合はhttp://en.wikipedia.org/wiki/Null_(SQL)を参照してください。
これは、値が意味する概念に従いますNULL。この値は現在不明であり、将来何かで満たされる可能性があります。したがって、動作は、将来の非 null 値のすべてのケースで正しい方法で定義されます。例)true or unknownはtrueであり、unknown( の真値NULL) が後で真または偽に置き換えられても、結果は になりますtrue。ただし、true and unknownis は、 unknown` が後で何か false に置き換えられたunknown場合に結果が true になるためです。unknown will later be replaced by a true value, while it will be false, if the
最後に、この動作は「非決定論的」ではありません。結果は明確に定義されており、各実行で同じ結果が得られるためです。これは定義上決定論的です。これは、他のほとんどのプログラミング言語で使用される標準のブール型の 2 値論理よりも少し複雑な方法で定義されています。非決定論的な関数はdbms_random.random、呼び出されるたびに異なる値を返すため、または でありSYSTIMESTAMP、複数回呼び出された場合にも異なる値を返します。