本記事では、
Oracleで文字列の置換をすることができる「REPLACE」関数について解説していく。
REPLACE –文字列を置換する–
Oracleの「REPLACE」を使えば、
文字列を置換して表示することが可能だ。
REPLACEの使い方
OracleのREPLACEの使い方は下記のようになっている。
REPLACE(文字列, 置換前文字列, 置換後文字列)
REPLACEで文字列を置換するサンプル
では以下に、
REPLACEを使って文字列を置換するサンプルをパターン毎にいくつか紹介していく。
① REPLACEで文字列を置換するパターン
--文字列「TAROU」をREPLACEで「JIROU」に置換
SELECT
REPLACE('TAROU','TA','JI')
FROM DUAL;
--結果
'JIROU'
上記は最も基本的なREPLACEの使い方。
REPLACEを使って、文字列「TAROU」の「TA」を、「JI」に置換した。
結果、「TAROU」が「JIROU」になって表示された。
② REPLACEで文字列の置換対象が存在しないパターン
--置換対象が存在しない
SELECT
REPLACE('TAROU','xxx','yyy')
FROM DUAL;
--結果
'TAROU'
上記は、
置換文字列「xxx」を「yyy」に置換しようと試みたが、
そもそも 「xxx」が存在しないというパターンだ。
REPLACEで置換する対象がない場合は元の文字列が返ってくる。
なので、エラーになったりという心配はない。
「あったら置換する」という使い方ができるのが特徴だ。
③ REPLACEで文字列を切り取るパターン
--文字列「TAROU」の「U」を切り取る
SELECT
REPLACE('TAROU','U')
FROM DUAL;
--結果
'TARO'
REPLACEでは、
第3パラメータを指定しないと第2パラメータの文字列が切り取られて返ってくる。
上記の例では、
「TAROU」の「U」がREPLACEによって切り取られ、「TARO」となって返ってきた。
REPLACEの使い方まとめ
- REPLACEの書式
- 置換する対象がない場合は元の文字列が返ってくる
- 第3パラメータを指定しないと第2パラメータの文字列が切り取られて返ってくる
関連記事
https://www.shift-the-oracle.com/sql/functions/replace.html
https://docs.oracle.com/cd/E16338_01/server.112/b56299/functions153.htm