【SQL】文字列を一括置換する方法


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

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

REPLACE関数の使い方

SQLで文字列を一括置換するときは、REPLACE関数を使います。

REPLACE関数の基本的な使い方は次の通りです。

SELECT REPLACE(変換対象の文字列式,置換前の文字列,置換後の文字列) FROM テーブル名;

SELECT文で文字列を一括置換する方法

SELECT文で文字列の値を置換するには、REPLACE関数を使います。

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

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

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

次のSQLでは、COL1列の値に含まれるabcという文字列を全てSという文字列に置換します。

例えば、COL1列の値がabcabcabcのときは、SSSが返ってきます。

SELECT REPLACE(col1,'abc','S') FROM tab1;

文字列の前後、左端や右端に含まれる空白やスペースを空文字に置換したい場合には、NVL関数を使います。

次のSQLでは、COL1列の値の前後の空白文字列を空文字に置換し、実質的に削除しています。

SELECT TRIM(col1) FROM tab1;

UPDATEで文字列を一括置換する方法

UPDATE文で文字列を置換するときは、SET句でREPLACE関数を使います。

次のSQLでは、COL1列の値に含まれる、aという文字列を全て一括でAAAという文字列に置換しています。

UPDATE tab1 SET col1 = REPLACE(col1,'a','AAA');

列の値の前後に含まれる空白文字列を空文字に変換したい場合にはTRIM関数を使います。

次のSQLでは、COL1列の値の前後の空白文字列を空文字に変換して、実質的に削除しています。

UPDATE tab1 SET col1 = TRIM(col1);

まとめ

文字列の置換にはREPLACE関数を使います。空白文字列の置換には、TRIM関数が便利です。

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