カテゴリ:

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

REPLACE

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

構文

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

引数

subject

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

pattern

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

replacement

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

戻り値

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

使用上の注意

  • replacement が指定されていない場合は、 subject が返され、 pattern のすべての出現が削除されます。

  • replacement が指定されている場合は、 pattern のすべての出現 replacement に置き換えられた subject が返されます。

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

注釈

元の subject の出現のみが考慮されます。結果に現れる pattern は削除/置換されません。

照合の詳細

Arguments with collation specifications are currently not supported.

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

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

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

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

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 |
+----------+---------+-------------+------------+
Copy