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

MySQLでCoalesceを使用する方法

    Coalesceは、値のリストから最初のnull以外の値を自動的に返す便利なMySQL関数です。これらの値は、リテラル、列名、またはその他のMySQL関数を使用して提供できます。この記事では、MySQLでCoalesceを使用する方法を見ていきます。


    MySQLでCoalesceを使用する方法

    MySQLでCOALSCEを使用する手順は次のとおりです


    MySQLのCOALESCEとは

    COALESCE関数は、値のリストから最初の非NULL値を返します。リスト内のすべての値がNULLの場合、NULLを返します。 MySQLのCoalesce関数の構文は次のとおりです。

    select coalesce(value1, value2, ..., valuen) 
    from table_name;

    上記のステートメントでは、テーブル名を指定し、カンマ区切りの値のリストを提供する必要があります。

    COALESCEの機能を示す簡単な例をいくつか示します。

    mysql> select coalesce(NULL, 2, 3);
    +----------------------+
    | coalesce(NULL, 2, 3) |
    +----------------------+
    |                    2 |
    +----------------------+
    
    mysql> select coalesce(NULL, NULL);
    +----------------------+
    | coalesce(NULL, NULL) |
    +----------------------+
    |                 NULL |
    +----------------------+


    MySQLでCOALESCEが使用される理由

    COALESCEはMySQLで使用され、null値を他の任意の文字列に置き換えます。これは、実際のデータを変更したくないが、別の方法でレポートする必要があるレポートや分析に非常に役立ちます。

    次のテーブルがあるとしますsales(id、product、order_date、amount) null値が含まれています。

    mysql> create table sales(id int, 
            product varchar(5),
            order_date date, 
            amount int);
    
    mysql> insert into sales(id, product, order_date, amount)
           values(null, 'A','2020-01-01',150),
           (2, null,'2020-01-01',150),
           (null, 'C',null,150),
           (4, 'D','2020-01-01',null);
    
    mysql> select * from sales;
    +------+---------+------------+--------+
    | id   | product | order_date | amount |
    +------+---------+------------+--------+
    | NULL | A       | 2020-01-01 |    150 |
    |    2 | NULL    | 2020-01-01 |    150 |
    | NULL | C       | NULL       |    150 |
    |    4 | D       | 2020-01-01 |   NULL |
    +------+---------+------------+--------+

    次に、COALESCEを使用して、各行から最初のnull以外の値を取得します。

    mysql> select coalesce(id, product, order_date, amount) from sales;
    +-------------------------------------------+
    | coalesce(id, product, order_date, amount) |
    +-------------------------------------------+
    | A                                         |
    | 2                                         |
    | C                                         |
    | 4                                         |
    +-------------------------------------------+
    >

    ご覧のとおり、COALESCEは各行からnull以外の値を返します。

    COALESCE関数を使用して、null値をカスタム文字列に置き換えることもできます。次の例では、COALESCEを使用して各null値を「NA」文字列に置き換えます。

    mysql> select coalesce(id, 'NA') id, 
           coalesce(product,'NA') product, 
           coalesce(order_date,'NA') order_date, 
           coalesce(amount,'NA') amount 
           from sales;
     +------+---------+------------+--------+
     | id   | product | order_date | amount |
     +------+---------+------------+--------+
     | NA   | A       | 2020-01-01 | 150    |
     | 2    | NA      | 2020-01-01 | 150    |
     | NA   | C       | NA         | 150    |
     | 4    | D       | 2020-01-01 | NA     |
     +------+---------+------------+--------+


    COALESCEとIFNULLMySQL

    IFNULLを使用してNULL値を置き換えることもできますが、受け入れることができるのは2つの引数のみで、nullの場合は1番目の引数を返し、それ以外の場合は2番目の引数を返します。 COALESCEは、2つだけでなく、任意の数の引数で機能します。


    UbiqのCOALESCE

    Ubiq Reportingツールは、上記のすべてのSQLクエリをサポートし、さまざまな方法でSQL結果を簡単に視覚化できるようにします。これが、Ubiqでの上記のCOALESCESQLクエリです。

    MySQL用のレポートツールが必要ですか? Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日それを試してみてください!

    1. PLS-00201識別子'PACKAGENAME.PROCEDURENAME'を宣言する必要があります

    2. 別のテーブルの列を更新する挿入トリガー後のmysql

    3. タイムスタンプを(任意のギャップに基づいて)アイランドにグループ化する方法は?

    4. MySQLクエリのシングルクォート、ダブルクォート、およびバックティック