【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文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。