SQL中的替换功能

时间:2018-10-09 15:34:08

标签: sql sql-server tsql

我有一个包含'-'或''的示例文本。因此,我想要一个用{替换'-'和''的sql replace语句。

我的查询是:

SELECT REPLACE('SQL-Tu torial','-',' ','');

所需结果:

SQLTutorial

错误:替换函数参数出错。

  

replace函数需要3个参数。

有帮助吗?

4 个答案:

答案 0 :(得分:5)

嵌套两个REPLACE函数。

REPLACE(REPLACE())

答案 1 :(得分:5)

REPLACE函数中不能使用3个参数。相反,您可以像下面这样使用它两次:

SELECT REPLACE(REPLACE('SQL-Tu torial', '-', ''), ' ', '');

输出:

SQLTutorial

答案 2 :(得分:3)

您还可以定义一个包含所有要替换字符的表,然后在从表中进行选择时使用单个replace语句:

declare @charToReplace table (char_to_replace varchar(1))
declare @tempString varchar(max) = 'SQL-Tu torial'

insert into @charToReplace values ('-'), (' ')

select @tempString = replace(@tempString, char_to_replace, '') 
from @charToReplace

select @tempString as result

结果:

enter image description here

答案 3 :(得分:0)

如果要替换的字符超过两个,则可以使用2017年提供的TRANSLATE。下面的示例使用TRANSLATE将“-”,“”和“ @”替换为“#”,然后将“#”替换为“ “使用REPLACE。即,将“-”,“”,“ @”和“#”替换为“”。不过,如果您只想替换两个字符,则TRANSLATE不会为您买任何东西。