- 类别:
字符串和二进制函数 (匹配/比较)
REPLACE¶
移除在所有位置出现的指定子字符串,并可以选择将它们替换为另一个子字符串。
语法¶
REPLACE( <subject> , <pattern> [ , <replacement> ] )
实参¶
subject
主题是要在其中执行替换的字符串。通常,这是一个列,但它可以是字面量。
pattern
这是您要替换的子字符串。通常,这是一个字面量,但它可以是列或表达式。请注意,这不是“正则表达式”;如果要使用正则表达式搜索模式,请使用 REGEXP_REPLACE 函数。
replacement
这个字符串用作
pattern
的替换值。如果省略了此项,或者字符串为空,则REPLACE
函数将删除所有出现的pattern
。
返回¶
返回的值是完成所有替换后的字符串。
使用说明¶
如果未指定
replacement
,则会返回subject
,并移除出现的所有pattern
。如果指定了
replacement
,则会返回subject
并用replacement
替换出现的所有pattern
。如果任何一个实参为 NULL,则结果也为 NULL。
备注
仅考虑原始 subject
中出现的结果。不会移除/替换结果中出现的 pattern
。
排序规则详细信息¶
The collation specifications of all input arguments must be compatible.
此函数不支持以下排序规则规范:
示例¶
将字符串 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
。