ホームページ >データベース >mysql チュートリアル >SQL Server で NULL = NULL が False を返すのはなぜですか?

SQL Server で NULL = NULL が False を返すのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-20 23:18:10453ブラウズ

Why Does NULL = NULL Return False in SQL Server?

SQL Server で NULL = NULL が false になる理由を理解する

SQL Server では、WHERE のような nullParam = NULL 句の条件は false と評価されます。 NULL はデータの欠落を意味することが多いため、これは直観に反しているように思えるかもしれません。 重要なのは、SQL Server の NULL.

の解釈を理解することです。

NULL は単に欠損データを表すわけではありません。未知の値または存在しない値を表します。 したがって、2 つの NULL 値の比較は本質的に不定です。 2 つの未知数が等しいか等しくないかを明確に言うことはできません。この不確実性により、誤った評価が発生します。

これは、ANSI SQL-92 標準に準拠しています。 デフォルトでは、SQL Server は ANSI_NULLS ON で動作し、この動作を強制します。 ただし、ANSI_NULLS OFF を設定すると、比較の結果が true に変更されます。

次の例を考えてみましょう:

<code class="language-sql">SET ANSI_NULLS OFF;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';

SET ANSI_NULLS ON;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';</code>

ANSI_NULLS OFF を使用すると、出力は「true」になります。 ANSI_NULLS ON (デフォルト) では、出力は「false」となり、この設定が SQL Server による NULL 比較の処理をどのように制御するかを示しています。 IS NULL を使用することが、null 値をチェックするための正しい方法です。

以上がSQL Server で NULL = NULL が False を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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