【SQL】UPDATEでNULL値を空文字にする方法


このページでは、ORACLEデータベースのSQLで、UPDATE文を使ってNULL値を空文字に置換して更新する方法を紹介しています。

UPDATE文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】UPDATE文の書き方:サンプル多数あり

NVL関数でNULL値を空文字に置換する方法

NVL関数を使うことで、簡単にNULL値を空文字に置換することが出来ます。

NVL関数の基本的な使い方は「NVL(列,NULLを置換する値)」と記述し使います。

次のSQLでは、TAB1テーブルのCOL1列の値がNULLのとき、空文字に置き換えています。

SELECT NVL(col1,'') FROM tab1;

これをUPDATE文のSETで指定します。次のSQLでは、「SET col1 = NVL(col1,”)」として、COL1列の値がNULLの場合に空文字にして置換しています。

UPDATE tab1 SET col1 = NVL(col1,'');

CASE条件分岐でNULL値を空文字に置換する方法

CASE式を使うことで、条件分岐して、NULL値の場合に空文字に変換することが出来ます。

次のSQLでは、COL1列の値がNULLの場合は空文字、NULLでない場合はCOL1列の値をそのまま取得しています。

SELECT
    CASE
         WHEN col1 IS NULL THEN ''
         WHEN col1 IS NOT NULL THEN col1
    END
FROM
    tab1;

CASE式をUPDATE文のSETで指定します。
COL1列の値がNULLの場合は空文字、NULLでない場合はCOL1列の値で更新をしています。

UPDATE 
    tab1
SET
    col1 = CASE
                WHEN col1 IS NULL THEN ''
                WHEN col1 IS NOT NULL THEN col1
           END
;

まとめ

UPDATE文でNULL値を空文字に変換して更新するには、NVL関数、またはCASE式を使います。

NULLだけを置換するときはNVL関数、他にも条件分岐させて更新したい場合にはCASE式を使います。

この他にも、UPDATE文の様々な書き方を解説しております。
詳しくは「【SQL】UPDATE文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。