問題:
列にNULLがないレコードを検索したい。
例:
データベースには、product
3列のデータ:id
、name
、およびprice
。
id | 名前 | 価格 |
---|---|---|
1 | バター | NULL |
2 | ミルク | 2.35 |
3 | パン | 3.25 |
4 | チーズ | NULL |
価格のある(NULLなしの)製品の名前と価格を見つけましょう。 ISNOTNULL演算子を使用してこれを行います。
解決策:
SELECT name, price FROM product WHERE price IS NOT NULL;
クエリの結果は次のとおりです。
name | 価格 |
---|---|
ミルク | 2.35 |
パン | 3.25 |
これにより、列にNULLがないレコードのみが返されるため、ミルクとパンの名前と価格のみが表示されます。バターとチーズには価格がありません(price
の列 NULL)なので、表示されません。
ディスカッション:
列にNULLのないレコードを表示するには、演算子ISNOTNULLを使用します。必要なのは列(または式)の名前だけで、演算子はNULLではありません(この例では、price IS NOT NULL
)。この条件をWHERE句に入れます(この例では、WHERE price IS NOT NULL
)、行をフィルタリングします。
条件がtrueの場合、列にNULLが格納されていないことを示します。この列に値がある場合(列がNULLでない場合)、行が返されます。上記から、クエリはprice
の値を持っているため、ミルクとパンの2つの製品のみを返します。 。