SQL函数替换字符串中的许多字符

时间:2015-04-09 09:43:50

标签: sql sql-server string replace

SQL Server中使用函数更改字符串中的许多错误字符的有效方法是什么?

我暂时使用: 更新my_table

UPDATE dbo.my_table
SET [Description] = REPLACE([Description], '¿', N'A')
UPDATE dbo.my_table
SET [Description] = REPLACE([Description], '!', N'B')

我有很多替补。我会欢迎像:

dbo.function_replace_all_bad_characters(string)

1 个答案:

答案 0 :(得分:1)

TSQL不支持正则表达式,因此您需要多次替换。但是,您可以将REPLACES加入一个更新语句,而不是多个更新,例如

UPDATE dbo.my_table
SET [Description] = REPLACE(REPLACE([Description], '¿', N'A'), '!', N'B')

您可以像这样定义自己的功能

CREATE FUNCTION dbo.function_replace_all_bad_characters(@str NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
    RETURN REPLACE(REPLACE(@str, '¿', N'A'), '!', N'B')

并使用像这样的功能

UPDATE dbo.my_table
SET [Description] = dbo.function_replace_all_bad_characters([Description])