类别:

字符串和二进制函数 (匹配/比较)

REPLACE

移除在所有位置出现的指定子字符串,并可以选择将它们替换为另一个子字符串。

语法

REPLACE( <subject> , <pattern> [ , <replacement> ] )
Copy

实参

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.

此函数不支持以下排序规则规范:

  • :code:`pi`(不区分标点符号)。

  • :code:`cs-ai`(区分大小写,不区分重音)。

示例

将字符串 down 替换为字符串 up

SELECT REPLACE('down', 'down', 'up');
Copy
+-------------------------------+
| REPLACE('DOWN', 'DOWN', 'UP') |
|-------------------------------|
| up                            |
+-------------------------------+

将字符串 Vacation in Athens 中的子字符串 Athens 替换为子字符串 Rome

SELECT REPLACE('Vacation in Athens', 'Athens', 'Rome');
Copy
+-------------------------------------------------+
| REPLACE('VACATION IN ATHENS', 'ATHENS', 'ROME') |
|-------------------------------------------------|
| Vacation in Rome                                |
+-------------------------------------------------+

将字符串 abcd 中的子字符串 bc 替换为空子字符串:

SELECT REPLACE('abcd', 'bc');
Copy
+-----------------------+
| 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');
Copy

将值中的字符串替换为指定的替换项:

SELECT subject,
       pattern,
       replacement,
       REPLACE(subject, pattern, replacement) AS new
  FROM replace_example
  ORDER BY subject;
Copy
+----------+---------+-------------+------------+
| 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

语言: 中文