- カテゴリ:
文字列とバイナリ関数 (マッチング/比較)
REPLACE¶
指定されたサブ文字列のすべての出現を削除し、オプションでそれらを別の文字列に置き換えます。
構文¶
REPLACE( <subject> , <pattern> [ , <replacement> ] )
引数¶
サブジェクト
サブジェクトは、置換を行う文字列です。通常、これは列ですが、リテラルにすることができます。
パターン
これは、置き換えるサブ文字列です。通常、これはリテラルですが、列または式にすることができます。これは「正規表現」ではありません。正規表現を使用してパターンを検索する場合は、 REGEXP_REPLACE 関数を使用します。
置換
これは、
パターン
の代替として使用される値です。これが省略されているか、空の文字列である場合、REPLACE
関数はパターン
のすべての出現を削除します。
戻り値¶
返される値は、すべての置換が行われた後の文字列です。
使用上の注意¶
置換
が指定されていない場合、サブジェクト
が返され、パターン
のすべての出現が削除されます。置換
が指定されている場合、サブジェクト
はパターン
のすべての出現を置換
に置き換えて返されます。引数のいずれかが NULLの場合、結果も NULLです。
注釈
元の サブジェクト
の出現のみが考慮されます。結果に現れる パターン
は削除/置換されません。
照合の詳細¶
Arguments with collation specifications are currently not supported.
例¶
abcd
の bc
文字列を空の文字列に置き換えます。
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 | +----------+---------+-------------+------------+