文字の置換
指定した文字を1文字ずつ置換する
文字列中の文字を1文字ずつ指定して置換するには、TRANSLATEを使用します。
TRANSLATE(文字列, 置換対象文字, 置換後文字)
それではサンプルを見てみましょう。
以下のようなmemberテーブルがあります。
id | name |
---|---|
1 | 荒木太郎 |
2 | 井端次郎 |
name列の”木”、”郎”という文字をそれぞれ”川”、”朗”へ置換して抽出するSQLです。
1 |
SELECT TRANSLATE(name, '木郎', '川朗') FROM member; |
上記を実行し、抽出された結果がこちらです。
TRANSLATE(name, ‘木郎’, ‘川朗’) |
---|
荒川太朗 |
井端次朗 |
1行目の”木”が”川”に、”郎”が”朗”に置換され、2行目では”木”が存在しないため、”郎”のみが置換されているのがわかります。
なお、TRANSLATEとREPLACEの違いは以下のとおりです。
TRANSLATE ・・・ 指定した文字を1文字ずつ対応させて置換する。
REPLACE ・・・ 指定した連続文字列を置換する。
[Oracle] 文字列関数 連続文字列の置換SQL(REPLACE)連続文字列の置換
指定した連続文字列を置換する
連続した文字列の置換には、REPLACEを使用します。
REPLACE(文...
以上が、文字列中の文字を1文字ずつ指定して置換する「TRANSLATE」の使い方です。
ぜひ参考にしてみてください。