REPLACE (Transact-SQL)
用另一个字符串值替换出现的所有指定字符串值。
语法
REPLACE ( string_expression , string_pattern , string_replacement )
参数
string_expression
要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。string_pattern
是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 ('')。string_replacement
替换字符串。string_replacement 可以是字符或二进制数据类型。
返回类型
如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。
如果任何一个参数为 NULL,则返回 NULL。
如果 string_expression 的类型不是 varchar(max) 或 nvarchar(max),则 REPLACE 将截断返回值,截断长度为 8,000 字节。若要返回大于 8,000 字节的值,则必须将 string_expression 显式转换为大值数据类型。
注释
REPLACE 根据输入的排序规则执行比较操作。若要以指定的排序规则执行比较操作,可以使用 COLLATE,显示指定输入的排序规则。
0x0000 (char(0)) 是 Windows 排序规则中未定义的字符,不能包括在 REPLACE 中。
示例
以下示例使用 xxx 替换 abcdefghi 中的字符串 cde。
SELECT REPLACE('abcdefghicde','cde','xxx');
GO
下面是结果集:
------------
abxxxfghixxx
(1 row(s) affected)
下面的示例使用 COLLATE 函数。
SELECT REPLACE('Das ist ein Test' COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO
下面是结果集:
------------
Das ist ein desk
(1 row(s) affected)