- カテゴリ:
文字列とバイナリ関数 (マッチング/比較)
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
(大文字と小文字は区別、アクセント記号は区別しない)。
注釈
upper
または lower
照合順序指定子を持つ列でこの関数を使用するには、 アカウントで2024_02動作変更バンドルを有効にする 必要があります。
アカウントでこのバンドルを有効にするには、以下のステートメントを実行します。
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
例¶
文字列 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
が作成されました。