Oracle REPLACE() 函数使用指南
Oracle REPLACE() 是一个内置函数,它将字符串中出现的所有子字符串替换为新的子字符串。
如果你需要根据正则表达式模式匹配替换,请使用 REGEX_REPLACE()。
Oracle REPLACE() 语法
这里是 Oracle REPLACE() 函数的语法:
REPLACE(char, search_string [, replacement_string ])
参数
char-
必需的。 原字符串。
search_string-
必需的。 被替换的子字符串。 它可以是
CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, 或NCLOB中的任何一种数据类型。 replacement_string-
必需的。 用来替换的新子字符串。 它可以是
CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, 或NCLOB中的任何一种数据类型。
返回值
Oracle REPLACE() 函数返回一个字符串,它将源字符串中的所有的 search_string 用 replacement_string 替换掉。
如果 search_string 为 null, REPLACE() 将返回源字符串。
如果 replacement_string 为 null,REPLACE() 将从源字符串中删除所有的 search_string。
如果第一个参数为 NULL, REPLACE() 将返回 NULL。
Oracle REPLACE() 示例
这里有几个展示了 Oracle REPLACE() 函数用法的示例。
基本示例
SELECT
REPLACE('Hi Alice', 'Hi', 'Hello') Result
FROM dual;
输出:
RESULT
______________
Hello Alice在本例中,我们使用 Hello 替换了子字符串 Hi。
区分大小写
MariaDB REPLACE() 函数执行区分大小写的搜索。
SELECT
REPLACE('Hi Alice', 'hi', 'Hello') Result
FROM dual;
输出:
RESULT
___________
Hi Alice在本示例中,由于 hi 为小写, 与 Hi 不匹配,因此并未替换。
多个匹配项
MariaDB REPLACE() 函数将替换搜友的匹配项,如下:
SELECT
REPLACE('A small dog and a big dog', 'dog', 'cat') Result
FROM dual;
输出:
RESULT
____________________________
A small cat and a big cat删除子字符串
如果您需要从源字符串中删除子字符串,您可以省略第三个参数,或传递空字符串或 NULL 给第三个参数。
SELECT
REPLACE('A small dog and a big dog', 'dog') Result1,
REPLACE('A small dog and a big dog', 'dog', '') Result2,
REPLACE('A small dog and a big dog', 'dog', NULL) Result3
FROM dual;
输出:
RESULT1 RESULT2 RESULT3
______________________ ______________________ ______________________
A small and a big A small and a big A small and a bigNULL 参数
如果第一个参数为 NULL, REPLACE() 将返回 NULL。
SET NULL 'NULL';
SELECT
REPLACE(NULL, 'A') Result1,
REPLACE('A', NULL) Result2,
REPLACE('A', 'B', NULL) Result3
FROM dual;
输出:
RESULT1 RESULT2 RESULT3
__________ __________ __________
NULL A A在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。
结论
Oracle REPLACE() 是一个内置函数,它将字符串中出现的所有子字符串替换为新的子字符串。