15

私は SQL の概念に慣れていませんが、NULL 式を勉強しているときに、なぜ NULL が NULL と一致しないのか疑問に思っています。この概念を単純化する実際の例を教えてもらえますか?

4

9 に答える 9

17

NULL値がないことを示します。ASQL の設計者は、(値がわからない) と (値がわからない) が等しいかどうかを尋ねられたとき、答えは次のようにBならなければならないというのが理にかなっていると判断しました。UNKNOWNない。いずれかを決定するのに十分な情報がありません。

3 つの値を持つロジックTRUEを読みたいと思うかもしれFALSEませUNKNOWNん。UNKNOWNNULL

于 2012-10-12T07:10:27.193 に答える
4

NULLは不明な値です。したがって、判断する意味はほとんどありませんNULL == NULL。それは、「この未知の値はその未知の値と等しいか」と尋ねるようなものです-手がかりはありません..

おそらくより良い説明については、null が null false と等しくない理由を参照してください

于 2012-10-12T07:10:35.343 に答える
4

NULL は、フィールドにデータがないことです。

IS NULL で NULL 値を確認できます

IS NULLを参照してください

mysql> SELECT NULL IS NULL;
+--------------+
| NULL IS NULL |
+--------------+
|            1 |
+--------------+

1 row in set (0.00 sec)
于 2012-10-12T07:10:38.463 に答える
2

NULL が実際に NULL と等しい比較を行う必要がある場合は、特別なデフォルト値coalesceを持つ一対のメソッドを使用できます。最も簡単な例は、NULL 可能な文字列列です。

coalesce(MiddleName,'')=coalesce(@MiddleName,'')

この比較は、@MiddleName 変数に null 値があり、MiddleName 列にも null 値がある場合に true を返します。もちろん、空文字列にもマッチします。それが問題である場合は、特別な値を次のようなばかげたものに変更できます

coalesce(MiddleName,'<NULL_DEFAULT>')=coalesce(@MiddleName,'<NULL_DEFAULT>')
于 2016-03-18T19:25:38.460 に答える
0

実際には、NULLはUNKNOWN値を意味します。2つのUNKNOWN値を比較する方法です。

于 2012-10-12T09:52:24.277 に答える
0

NULLに=を使用することはできません。代わりに、ISNULLを使用できます。

http://www.w3schools.com/sql/sql_null_values.asp

于 2012-10-12T07:11:44.627 に答える
0

リンクをたどってください

NULL値は、他の値と比較しても真ではありませんNULL

使用できることを確認するには

Is Null or Not Null operators ..

書類

間違っている場合は訂正してください

于 2012-10-12T07:15:48.607 に答える