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