ホームページ  >  記事  >  データベース  >  Oracle は、null が 1 に等しくない場合に null を除外するのはなぜですか?

Oracle は、null が 1 に等しくない場合に null を除外するのはなぜですか?

下次还敢
下次还敢オリジナル
2024-05-08 18:51:161245ブラウズ

Oracle では、1 に等しくないクエリは Null 値を除外します。次の理由によります: Null 値は、1 を含むどの値とも等しくありません。 Oracle は、3 つの値のロジックを使用して Null 値、つまり true、false、unknown を処理します。 Null と非 Null 値の比較では、比較が Null 対 Null (True を返す) でない限り、常に Unknown が返されます。 1 に等しくないクエリは、Null 値を不明として扱い、Oracle の Null 処理メカニズムに基づいて除外します。

Oracle は、null が 1 に等しくない場合に null を除外するのはなぜですか?

Oracle で 1 に等しくない場合に Null がフィルタリングされるのはなぜですか

Oracle では、1 に等しくないクエリ (<> 1) によって Null 値がフィルタリングされます。これは次の理由によるものです。

  • Null 値はどの値とも等しくない: 3 値論理の Null 真理値定理によれば、Null 値は true にも false にも等しくないため、Null 以外の値とは等しくありません ( 1)を含む。
  • Oracle の Null 処理: Oracle は、3 つの値のロジック (True、False、Unknown) を使用して Null 値を処理します。 Null 値を含む比較は、比較が Null 対 Null (True を返す) でない限り、Unknown を返します。

詳細な説明:

1 に等しくないクエリを実行すると、Oracle は Null 値を不明 (Unknown) として扱います。比較の評価方法は次のとおりです:

  • 1 <> 1: False (等しいため)
  • 1 <> Null: Unknown (Null は True でも False でもないため)
  • Null <> 1: 不明 (Null は True でも False でもないため)
  • Null: True (Null 真理値定理による)

結果は Null <> 1 の値は Unknown なので、Unknown 値は条件を満たさないため、Oracle は結果から Null 値をフィルタリングします。これは、Null 値が非 Null 値とは異なる特別な値として扱われる Oracle の Null 処理メカニズムと一致しています。

以上がOracle は、null が 1 に等しくない場合に null を除外するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。