我有一个包含'-'或''的示例文本。因此,我想要一个用{替换'-'和''的sql replace
语句。
我的查询是:
SELECT REPLACE('SQL-Tu torial','-',' ','');
所需结果:
SQLTutorial
错误:替换函数参数出错。
replace函数需要3个参数。
有帮助吗?
答案 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
结果:
答案 3 :(得分:0)
如果要替换的字符超过两个,则可以使用2017年提供的TRANSLATE。下面的示例使用TRANSLATE将“-”,“”和“ @”替换为“#”,然后将“#”替换为“ “使用REPLACE。即,将“-”,“”,“ @”和“#”替换为“”。不过,如果您只想替换两个字符,则TRANSLATE不会为您买任何东西。