トップDML文字列関数 ≫ 文字列を置換する

文字列を置換する

SQLで文字列を置換するにはREPLACE関数かTRANSLATE関数を使用します.DBMSによってサポートしている関数が異なります.以下に各DBMSごとに使用可能な関数を示します.

DBMSREPLACETRANSLATE
Access×
SQLServer×
Oracle
MySQL×
PostgreSQL

REPLACE関数とTRANSLATE関数は動作が異なるので注意が必要です.

REPLACE

REPLACE関数は文字列内の指定された一部の文字列を別の文字列に置き換えます.

SQLサンプル

SELECT REPLACE('イヌヌーピー', 'イヌ', '')

結果

REPLACE('イヌヌーピー', 'イヌ', 'ス')
スヌーピー

「イヌヌーピー」という文字列から「イヌ」を「ス」に置換しています.

TRANSLATE

TRANSLATE関数は検索文字列と置換文字列を順番に一文字づつ対応させて置き換えます.

SQLサンプル

SELECT TRANSLATE('ライナス・ヴァン・ペルト', 'ライオン', 'タイガー')

結果

SELECT TRANSLATE('ライナス・ヴァン・ペルト', 'ライオン', 'タイガー')
タイナス・ヴァン・ペルト

SQL サンプル

例として以下の顧客マスタの性別を「男」から「男性」に一括変更します.

顧客マスタ

顧客コード顧客名性別
A0001チャーリー・ブラウン
A0002サリー・ブラウン
A0003シュローダー

SQL

UPDATE 社員
SET 性別 = REPLACE(性別, '', '男性')

結果

顧客コード顧客名性別
A0001チャーリー・ブラウン男性
A0002サリー・ブラウン
A0003シュローダー男性