sql >> データベース >  >> RDS >> Database

列にNULLがない行をフィルタリングする方法

    問題:

    列にNULLがないレコードを検索したい。

    例:

    データベースには、product 3列のデータ:idname 、および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つの製品のみを返します。 。


    1. PostgreSQLの日付から月を抽出する

    2. リストからのSqlBulkCopy<>

    3. dbms_output.put_line

    4. MySQL発音区別符号の鈍感な検索(スペイン語のアクセント)