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_stringreplacement_string 替换掉。

如果 search_stringnullREPLACE() 将返回源字符串。

如果 replacement_stringnullREPLACE() 将从源字符串中删除所有的 search_string

如果第一个参数为 NULLREPLACE() 将返回 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 big

NULL 参数

如果第一个参数为 NULLREPLACE() 将返回 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() 是一个内置函数,它将字符串中出现的所有子字符串替换为新的子字符串。