文字列中の文字を置き換えるには、REPLACE関数を使用します。
構文
- (REPLACE構文)
- REPLACE(<対象文字列>, <置換前文字>, <置換後文字>)
置換文字は2文字以上でもOKです。
サンプル
例1)REPLACE関数のサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
-- 'ABCABC'の'A'を'X'に置き換える SELECT REPLACE('ABCABC', 'A', 'X') FROM dual; ⇒ 'XBCXBC' -- 'ABCABC'の'A'を'XX'に置き換える SELECT REPLACE('ABCABC', 'A', 'XX') FROM dual; ⇒ 'XXBCXXBC' -- 'ABCABC'の'AB'を'X'に置き換える SELECT REPLACE('ABCABC', 'AB', 'X') FROM dual; ⇒ 'XCXC' -- 'ABCABC'の'AB'をブランクに置き換える SELECT REPLACE('ABCABC', 'AB', '') FROM dual; ⇒ 'CC' -- 'ABCABC'のブランクを'X'に置き換える SELECT REPLACE('ABCABC', '', 'X') FROM dual; ⇒ 'ABCABC' -- 'ABCABC'の'A'をブランクに置き換える SELECT REPLACE('ABCABC', 'A', '') FROM dual; ⇒ 'BCBC' -- 'ABCABC'の'S'を'X'に置き換える (※'S'は存在しない) SELECT REPLACE('ABCABC', 'S', 'X') FROM dual; ⇒ 'ABCABC' |
※ シングルクォーテーションやダブルクォーテーションなど特殊文字を
置換対象としたい場合は、CHR関数を使用すればOKです。
例2)CHR関数を使用したREPLACE関数のサンプル
1 2 3 4 5 |
-- シングルクォーテーションを'X'に置換する SELECT REPLACE(COL1, CHR(39), 'X') FROM test_tbl; -- ダブルクォーテーションを'X'に置換する SELECT REPLACE(COL1, CHR(34), 'X') FROM test_tbl; |
シングルクォーテーションのASCIIコードは39、
ダブルクォーテーションのASCIIコードは34です。
解説
- 置換対象文字が複数あれば、全て置換されます。
- 置換する文字は、1文字でなくてもOKです。