カテゴリ:

文字列とバイナリ関数 (マッチング/比較)

REPLACE

指定されたサブ文字列のすべての出現を削除し、オプションでそれらを別の文字列に置き換えます。

構文

REPLACE( <subject> , <pattern> [ , <replacement> ] )

引数

サブジェクト

サブジェクトは、置換を行う文字列です。通常、これは列ですが、リテラルにすることができます。

パターン

これは、置き換えるサブ文字列です。通常、これはリテラルですが、列または式にすることができます。これは「正規表現」ではありません。正規表現を使用してパターンを検索する場合は、 REGEXP_REPLACE 関数を使用します。

置換

これは、 パターン の代替として使用される値です。これが省略されているか、空の文字列である場合、 REPLACE 関数は パターン のすべての出現を削除します。

戻り値

返される値は、すべての置換が行われた後の文字列です。

使用上の注意

  • 置換 が指定されていない場合、 サブジェクト が返され、 パターン のすべての出現が削除されます。

  • 置換 が指定されている場合、 サブジェクトパターン のすべての出現を 置換 に置き換えて返されます。

  • 引数のいずれかが NULLの場合、結果も NULLです。

注釈

元の サブジェクト の出現のみが考慮されます。結果に現れる パターン は削除/置換されません。

照合の詳細

Arguments with collation specifications are currently not supported.

abcdbc 文字列を空の文字列に置き換えます。

SELECT REPLACE('abcd', 'bc') FROM DUAL;

+-----------------------+
| REPLACE('ABCD', 'BC') |
|-----------------------|
| ad                    |
+-----------------------+

値の文字列を指定の置換に置き換えます。

CREATE OR REPLACE TABLE replace_example(subject varchar(10), pattern varchar(10), replacement varchar(10));
INSERT INTO replace_example VALUES('snowman', 'snow', 'fire'), ('sad face', 'sad', 'happy');

SELECT subject, pattern, replacement, REPLACE(subject, pattern, replacement) AS new FROM replace_example;

+----------+---------+-------------+------------+
| SUBJECT  | PATTERN | REPLACEMENT | NEW        |
|----------+---------+-------------+------------|
| snowman  | snow    | fire        | fireman    |
| sad face | sad     | happy       | happy face |
+----------+---------+-------------+------------+