- カテゴリ:
文字列とバイナリ関数 (マッチング/比較)
REPLACE¶
指定されたサブ文字列のすべての出現を削除し、オプションでそれらを別のサブ文字列に置き換えます。
構文¶
REPLACE( <subject> , <pattern> [ , <replacement> ] )
引数¶
subjectサブジェクトは、置換を行う文字列です。通常、これは列ですが、リテラルにすることができます。
patternこれは、置き換えるサブ文字列です。通常、これはリテラルですが、列または式にすることができます。これは「正規表現」ではありません。正規表現を使用してパターンを検索する場合は、 REGEXP_REPLACE 関数を使用します。
replacementこれは、
patternの代替として使用される値です。これが省略されているか、空の文字列である場合、REPLACE関数はpatternのすべての出現を削除します。
戻り値¶
返される値は、すべての置換が行われた後の文字列です。
使用上の注意¶
replacementが指定されていない場合は、subjectが返され、patternのすべての出現が削除されます。replacementが指定されている場合は、patternのすべての出現replacementに置き換えられたsubjectが返されます。引数のいずれかが NULL の場合は、結果も NULL です。
注釈
元の subject の出現のみが考慮されます。結果に現れる pattern は削除/置換されません。
照合順序の詳細¶
The collation specifications of all input arguments must be compatible.
この関数は、次の照合仕様をサポートしません。
pi(句読点は区別しない)。cs-ai(大文字と小文字は区別、アクセント記号は区別しない)。
例¶
文字列 down を文字列 up に置き換えます。
SELECT REPLACE('down', 'down', 'up');+-------------------------------+ | REPLACE('DOWN', 'DOWN', 'UP') | |-------------------------------| | up | +-------------------------------+
文字列 Vacation in Athens のサブ文字列 Athens をサブ文字列 Rome に置き換えます。
SELECT REPLACE('Vacation in Athens', 'Athens', 'Rome');+-------------------------------------------------+ | REPLACE('VACATION IN ATHENS', 'ATHENS', 'ROME') | |-------------------------------------------------| | Vacation in Rome | +-------------------------------------------------+
文字列 abcd のサブ文字列 bc を空拍のサブ文字列に置き換えます。
SELECT REPLACE('abcd', 'bc');+-----------------------+ | REPLACE('ABCD', 'BC') | |-----------------------| | ad | +-----------------------+
テーブルの値を新しい値に置き換えます。
テーブルを作成し、テーブルに入力します。
CREATE OR REPLACE TABLE replace_example( subject VARCHAR(10), pattern VARCHAR(10), replacement VARCHAR(10)); INSERT INTO replace_example VALUES ('old car', 'old car', 'new car'), ('sad face', 'sad', 'happy'), ('snowman', 'snow', 'fire');値の文字列を指定の置換に置き換えます。
SELECT subject, pattern, replacement, REPLACE(subject, pattern, replacement) AS new FROM replace_example ORDER BY subject;+----------+---------+-------------+------------+ | SUBJECT | PATTERN | REPLACEMENT | NEW | |----------+---------+-------------+------------| | old car | old car | new car | new car | | sad face | sad | happy | happy face | | snowman | snow | fire | fireman | +----------+---------+-------------+------------+出力は以下の置換を示します。
文字列
old carが文字列new carに置き換えられました。文字列
sad faceで、サブ文字列sadがサブ文字列happyに置き換えられ、新しい文字列happy faceが作成されました。文字列
snowmanで、サブ文字列snowがサブ文字列fireに置き換えられ、新しい文字列firemanが作成されました。