仅替换第n个字符实例

HL8*_*HL8 6 sql sql-server-2008

有没有办法可以用一些东西替换字符串中第一个字符实例.

^1402 WSN NIAMLAB^teertS htimS 005
Run Code Online (Sandbox Code Playgroud)

成为

&1402 WSN NIAMLAB^teertS htimS 005
Run Code Online (Sandbox Code Playgroud)

保持第二个^到位

Phi*_*ein 21

要替换字符的第一个实例,我建议使用STUFFCHARINDEX函数. STUFF将字符串插入另一个字符串.它删除起始位置的第一个字符串中指定长度的字符,然后将第二个字符串插入起始位置的第一个字符串中.

DECLARE @str varchar(100) = '^1402 WSN NIAMLAB^teertS htimS 005'
SELECT STUFF(@str, CHARINDEX('^', @str), 1, '&')
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以STUFF在查询中使用如下:

SELECT STUFF(<yourcolumn>, CHARINDEX('^', <yourcolumn>), 1, '&')
FROM <yourtable>
Run Code Online (Sandbox Code Playgroud)