【SQL】列の値やNULL値を置き換える方法


本記事では、ORACLEデータベースのSQLで列の値やNULL値を置き換える方法をサンプルを交えて詳しく解説をしております。

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

列の値を置き換える方法

SQLで、列の値を置き換えるには、REPLACE関数を使います。

REPLACE関数は、任意の文字列を置換することが出来ます。

次のSQLでは、’abcabcabc’という値の’a’という文字列を’S’に置換しています。SbcSbcSbcという結果が返ってきます。

SELECT REPLACE('abcabcabc','a','S') FROM dual;

また、次のSQLでは’abc’という文字列を’A’に置き換えています。AAAという結果が返ってきます。

SELECT REPLACE('abcabcabc','a','S') FROM dual;

NULL値を置き換える方法

NULL値を置き換えるには、NVL関数を使います。

NVL関数は、結果がNULLとなった場合に、NULLの代わりの任意の文字列に変換できます。

次のSQLでは、COL1列の値がNULLの場合に0を返します。列の値がNULLでない場合は、そのままCOL1列の値が返されます。

SELECT NVL(col1,0) FROM tab1;

他にもORACLEでは、NULLの置き換えに、NVL2関数が使えます。

NVL2関数は、NVL(式1,式2,式3)と書き、式1の値がNULLでない場合は式2を返し、式1の値がNULLの場合は式3を返します。

次のSQLでは、COL1列の値がNULLでない場合はCOL2を返し、NULLの場合はCOL3を返します。

SELECT NVL2(col1,col2,col3) FROM tab1;

まとめ

列の値の置き換えはREPLACE関数、NULLの置き換えはNVL関数またはNVL2関数を使うことでシンプルにコーディングすることが出来ます。

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