【MySQL】NULLを0に置換するSQL
ここではMySQLで、NULLの値のデータを0に置換する方法を紹介しています。
NVL関数について
NVL関数とは、ORACLEデータベースで使える置換関数です。
指定した値や列値がNULLの場合に、任意の別の値に置換することが出来ます。
例えば次のSQLでは、COL1列の値がNULLの場合に、値を0に置き換えることが出来ます。
SELECT NVL(col1,0) FROM tab1;
ただし、NVL関数はORACLEデータベースにはありますが、MySQLには存在しません。
そのため別の関数を使ってNULL値の置換を行います。
MySQLでは、IFNULL関数またはCOALESCE関数を使います。
IFNULL関数
NULL値を0に置換するとき、IFNULL関数が使えます。
IFNULL関数は、値がNULLの場合、別の値を返します。
基本的な使い方は次の通りです。
IFNULL(列名,置換する値)
次のSQLでは、COL1列の値がNULL値の場合、0に置換した結果を返します。
SELECT IFNULL(col1,0) FROM tab1;
COALESCE関数
NULL値を0に置換するとき、COALESCE関数も使えます。
COALESCE関数はNULL値でない最初の引数を返す関数です。
基本的な使い方は次の通りです。
COALESCE(値1[,値2・・・])
次のSQLでは、COL1列がNULLの場合に0が返ってきます。
SELECT COALESCE(col1,0) FROM tab1;