問題:
列にNULLが含まれるレコードを検索する必要があります。
例:
私たちのデータベースには、children 4列のデータ:id 、first_name 、middle_name 、およびlast_name 。
| id | first_name | ミドルネーム | last_name |
|---|---|---|---|
| 1 | ジョン | カール | ジャクソン |
| 2 | トム | NULL | トムソン |
| 3 | リサ | アリス | NULL |
| 4 | アン | NULL | スミス |
ミドルネームのない子のID、名、および姓を見つけましょう(列middle_nameでNULL) )。これにはISNULL演算子を使用します。
解決策:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
結果は次のとおりです。
| id | first_name | last_name |
|---|---|---|
| 2 | トム | トムソン |
| 4 | アン | スミス |
これにより、middle_nameにNULLが含まれるレコードのみが返されます。 、したがって、トムとアンは存在しますが、ミドルネームを持つジョンとリサは存在しません。
ディスカッション:
IS NULLを使用します 列にNULLがあるレコードを検索するWHEREの条件の演算子。もちろん、列の名前の代わりに任意の式を使用して、それがNULLを返すかどうかを確認することもできます。列の名前とISNULL演算子だけが必要です(この例では、middle_name IS NULL )。この条件をWHERE句に入れて、行をフィルタリングします(この例では、WHERE middle_name IS NULL )。条件がtrueの場合、列にはNULLが格納され、この行が返されます。上記のクエリでは、ミドルネームを持たないTomとAnneの子を持つ2つのレコードのみが返されるため、列middle_name NULLを格納します。