【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;