Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Remplacer uniquement la nième instance de caractère

Pour remplacer la première instance d'un caractère, je recommanderais l'utilisation du STUFF et CHARINDEX les fonctions. STUFF insère une chaîne dans une autre chaîne. Il supprime une longueur spécifiée de caractères dans la première chaîne à la position de départ, puis insère la deuxième chaîne dans la première chaîne à la position de départ.

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

Notez que vous pouvez également utiliser STUFF dans une requête comme suit :

SELECT STUFF(<yourcolumn>, CHARINDEX('^', <yourcolumn>), 1, '&')
FROM <yourtable>