文字列関数

[Oracle] 文字列関数 1文字ずつの置換SQL(TRANSLATE)

文字の置換

指定した文字を1文字ずつ置換する

文字列中の文字を1文字ずつ指定して置換するには、TRANSLATEを使用します。

TRANSLATE(文字列, 置換対象文字, 置換後文字)

それではサンプルを見てみましょう。
以下のようなmemberテーブルがあります。

id name
1 荒木太郎
2 井端次郎


name列の”木”、”郎”という文字をそれぞれ”川”、”朗”へ置換して抽出するSQLです。

上記を実行し、抽出された結果がこちらです。

TRANSLATE(name, ‘木郎’, ‘川朗’)
荒川太朗
井端次朗


1行目の”木”が”川”に、”郎”が”朗”に置換され、2行目では”木”が存在しないため、”郎”のみが置換されているのがわかります。

 
なお、TRANSLATEとREPLACEの違いは以下のとおりです。
TRANSLATE ・・・ 指定した文字を1文字ずつ対応させて置換する。
REPLACE ・・・ 指定した連続文字列を置換する。

[Oracle] 文字列関数 連続文字列の置換SQL(REPLACE)連続文字列の置換 指定した連続文字列を置換する 連続した文字列の置換には、REPLACEを使用します。 REPLACE(文...

 
 
以上が、文字列中の文字を1文字ずつ指定して置換する「TRANSLATE」の使い方です。
ぜひ参考にしてみてください。