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を使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日それを試してみてください!