REPLACE (Transact-SQL)

用另一个字符串值替换出现的所有指定字符串值。

主题链接图标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)