replace関数

replace関数では、置換文字列で置換された検索文字列のすべての出現を含むソースが返されます。

構文

returnvalue replace(source, search_string [, replacement_string])

source ::= any*
search_string ::= any*
replacement_string ::= any*
returnvalue ::= string

セマンティクス

source

検索する必要がある入力文字列。この引数は、一連の文字列に暗黙的にキャストされます。

search_string

ソースで検索する必要がある文字列。この引数は、一連の文字列に暗黙的にキャストされます。

replacement_string

ソース内のsearch_stringのかわりに使用する必要のある文字列。これは、オプションの引数です。replacement_stringが省略されたか、空の順序である場合、search_stringのすべてのオカレンスはソースから削除されます。結果がSTRING_MAX_SIZE = 2^18 - 1 in chars (512kb)より大きくならないように結果がチェックされます。これより大きくなると、ランタイム問合せ例外がスローされます。この引数は、一連の文字列に暗黙的にキャストされます。

returnvalue

search_string引数がNULLである場合、ソースを返します。

ソース引数がNULLの場合、NULLを返します。

ソース引数またはsearch_string引数のいずれかが空の順序である場合、NULLを返します。

引数が複数の項目を含む順序である場合はNULLを返します。

例11-20 replace関数

この例では、firstnameのすべてのオカレンスで文字列eがXに置き換えられます。PeterにXのオカレンスがあります。

SELECT firstname, replace(firstname,"e","X") FROM users;
 +-----------+----------+
 | firstname | Column_2 |
 +-----------+----------+
 | John      | John     |
 | Peter     | PXtXr    |
 | Mary      | Mary     |
 +-----------+----------+

例11-21 replace関数

この例では、文字列arがurphで置換されます。ソースで、search_stringの後の残りの文字が出力用に保持されています。これによって、Maryの出力がMurphyとして生成されます。

SELECT firstname, replace(firstname,"ar","urph") FROM users;
 +-----------+----------+
 | firstname | Column_2 |
 +-----------+----------+
 | John      | John     |
 | Peter     | Peter    |
 | Mary      | Murphy   |
 +-----------+----------+

例11-22 replace関数

この例では、replacement_stringは指定されていません。replacement_stringが指定されていないため、search_stringが削除され、残りのソースが表示されます。

SELECT firstname, replace(firstname,"oh") FROM users;
 +-----------+----------+
 | firstname | Column_2 |
 +-----------+----------+
 | John      | Jn       |
 | Peter     | Peter    |
 | Mary      | Mary     |
 +-----------+----------+