如何替换 sql 服务器中的第 n 个字符
How to replace nth character in sql server
我正在尝试替换 SQL 服务器中的第 n 个字符。我尝试使用 replace()
:
SELECT REPLACE(ABC,0,1) FROM XXX
在上面的代码中,所有的零都将被替换为一个,但我只想在特定位置更改它,有时该位置可以更改。
您为此使用 STUFF
:
SELECT STUFF(ABC, 5, 1, '1')
FROM XXX
这会将第 5 个字符替换为 1。
使用stuff()
:
select stuff(abc, 0, 1, 'a')
已记录 here。
您正在寻找 STUFF
:
select STUFF(ABC, @n, 1, 'X') from XXX
这会将第 @n
个字符替换为 X
。
从技术上讲,它在第 ABC
列的原始字符串中从位置 @n
开始,删除 1
个字符,然后插入字符串 'X'
在那个位置。
使用东西
STUFF 函数将一个字符串插入另一个字符串。删除第一个字符串的起始位置指定长度的字符,然后将第二个字符串插入到第一个字符串的起始位置。
select STUFF(ABC, starting_index, 1, 'X') from XXX
"Here your int position to replace" 是位置 no 只需替换为任何 int no 并且该位置将被替换
注:(感谢pcnate的建议)
starting_index 是您要替换的 int 位置。
使用东西。
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)
我正在尝试替换 SQL 服务器中的第 n 个字符。我尝试使用 replace()
:
SELECT REPLACE(ABC,0,1) FROM XXX
在上面的代码中,所有的零都将被替换为一个,但我只想在特定位置更改它,有时该位置可以更改。
您为此使用 STUFF
:
SELECT STUFF(ABC, 5, 1, '1')
FROM XXX
这会将第 5 个字符替换为 1。
使用stuff()
:
select stuff(abc, 0, 1, 'a')
已记录 here。
您正在寻找 STUFF
:
select STUFF(ABC, @n, 1, 'X') from XXX
这会将第 @n
个字符替换为 X
。
从技术上讲,它在第 ABC
列的原始字符串中从位置 @n
开始,删除 1
个字符,然后插入字符串 'X'
在那个位置。
使用东西 STUFF 函数将一个字符串插入另一个字符串。删除第一个字符串的起始位置指定长度的字符,然后将第二个字符串插入到第一个字符串的起始位置。
select STUFF(ABC, starting_index, 1, 'X') from XXX
"Here your int position to replace" 是位置 no 只需替换为任何 int no 并且该位置将被替换 注:(感谢pcnate的建议) starting_index 是您要替换的 int 位置。
使用东西。
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)