如何替换sql server中的第n个字符

时间:2015-02-23 13:22:31

标签: sql sql-server

我正在尝试替换SQL Server中的第n个字符。我尝试使用replace()

SELECT REPLACE(ABC,0,1)  FROM XXX

在上面的代码中,所有的零都将替换为1,但我只想在特定位置更改它,有时该位置可能会发生变化。

5 个答案:

答案 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)

您可以使用STUFF

SELECT STUFF(ABC, 5, 1, '1')
FROM XXX

这会将第5个字符替换为1。

答案 3 :(得分:5)

使用stuff()

select stuff(abc, 0, 1, 'a')

记录在案here

答案 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)