在本教程中,将学习如何使用SQL Server REPLACE()
函数通过字符串中的新子字符串替换所有出现的子字符串。
SQL Serer REPLACE函数简介
要使用新子字符串替换字符串中所有出现的子字符串,请使用REPLACE()
函数,如下所示:
REPLACE(input_string, substring, new_substring);
在这个语法中:
input_string
是要搜索的任何字符串表达式。substring
是要替换的子字符串。new_substring
是替换字符串。
REPLACE()
函数返回一个新字符串,其中出现所有子字符串被new_substring
替换。 如果任何参数为NULL
,则返回NULL
。
SQL Server REPLACE()函数示例
下面举一些使用REPLACE()函数例子来了解它如何工作的。
1. REPLACE()函数使用带文字字符串
以下示例使用REPLACE()
函数指定字符串中的"tea"
替换为"coffee"
:
SELECT
REPLACE(
'It is a good tea at the famous tea store.',
'tea',
'coffee'
) result;
执行上面查询语句,得到以下结果:
从输出中可以看出,所有出现的'tea'
都被'coffee'
所取代。
2. 对表列使用REPLACE()函数
在此示例中,将使用示例数据库中的sales.customers
表:
此示例调用REPLACE()
函数两次以新格式格式化电话号码:
SELECT
first_name,
last_name,
phone,
REPLACE(REPLACE(phone, '(', ''), ')', '') phone_formatted
FROM
sales.customers
WHERE phone IS NOT NULL
ORDER BY
first_name,
last_name;
执行上面查询语句,得到以下结果:
这是怎么运作的?
第一次调用:REPLACE(phone, '(', '')
用空格替换字符'('
电话号码,(916) 381-6003
-> 916) 381-6003
。
第二个调用重用第一个调用的结果,并用空格替换字符')'
,例如,916) 381-6003
-> 916 381-6003
。
3. 使用REPLACE()函数来纠正表中的数据
REPLACE()
函数通常用于更正表中的数据。 例如,用新的链接替换过时的链接。
以下是语法:
UPDATE
table_name
SET
column_name = REPLACE(column_name, 'old_string','new_string')
WHERE
condition;
例如,要将电话号码的区号从916
更改为917
,请使用以下语句:
UPDATE
sales.customers
SET
phone = REPLACE(phone,'(916)','(917)')
WHERE
phone IS NOT NULL;
注意,应该在执行替换之前备份表。
在本教程中,学习了如何使用SQL Server REPLACE()
函数将字符串中所有出现的子字符串替换为新的子字符串。
上一篇:
SQL Server字符串函数
下一篇:
SQL Server Window函数