我正在尝试替换SQL Server中的第n个字符。我尝试使用replace()
:
SELECT REPLACE(ABC,0,1) FROM XXX
在上面的代码中,所有的零都将替换为1,但我只想在特定位置更改它,有时该位置可能会发生变化。
答案 0 :(得分:22)
您正在寻找STUFF
:
select STUFF(ABC, @n, 1, 'X') from XXX
这会将@n
字符替换为X
。
从技术上讲,它从位置ABC
开始寻找列@n
的原始字符串,删除1
字符,然后在该位置插入字符串'X'
。
答案 1 :(得分:19)
使用东西 STUFF函数将字符串插入另一个字符串。它删除起始位置的第一个字符串中指定长度的字符,然后将第二个字符串插入起始位置的第一个字符串中。
select STUFF(ABC, "Here your int position to replace", 1, 'X') from XXX
“这里你要替换的int位置”是不用任何int替换的位置,并且该位置将被替换
答案 2 :(得分:5)
答案 3 :(得分:5)
答案 4 :(得分:3)
使用东西。
STUFF(Column_Name,starting_index,
lenth_ofthestring_to_replace_from_starting_index, character_to_replce)
实施例_
DECLARE @str varchar(100) = '123456789'
select @str
SELECT STUFF(@str,2,1, 'hello')
-- want to replece 1 charter starting from 2nd position with the string 'hello'
检查一下。
SELECT STUFF(@str,2,25, 'hello'),len(@str)