1. ホーム
  2. sql

[解決済み] SQLはnullと=null【重複】です。

2022-04-27 02:08:49

質問

<ブロッククオート

重複の可能性があります。

=null "と" IS NULL "とは何か?

IS NULLと=NULLの違いは何ですか?

とはどのような違いがあるのでしょうか?

where x is null

そして

where x = null

と、後者がうまくいかないのはなぜでしょうか?

解決方法は?

SQLでは null の値と他の値(他の null ) を使って比較演算子 (例 = , != , < など)は、結果的に null とみなされます。 false をWhere節で使用します(厳密には、"false"ではなく、"not true"ですが、効果は同じです)。

その理由は null は「不明」を意味します。 null も "unknown" となります。したがって、以下のようなコーディングでは、行のヒットはありません。 where my_column = null .

SQL では、あるカラムが次のようなものであるかどうかを調べるための特別な構文が用意されています。 null を経由して is nullis not null をテストするための特別な条件である。 null (または null ).

上記のように、様々な条件とその効果を示すSQLを紹介します。

create table t (x int, y int);
insert into t values (null, null), (null, 1), (1, 1);

select 'x = null' as test , x, y from t where x = null
union all
select 'x != null', x, y from t where x != null
union all
select 'not (x = null)', x, y from t where not (x = null)
union all
select 'x = y', x, y from t where x = y
union all
select 'not (x = y)', x, y from t where not (x = y);

は1行しか返しません(予想通り)。

TEST    X   Y
x = y   1   1

で実行している様子をご覧ください。 SQLFiddle