Y a-t-il un moyen de remplacer la 1ère instance d'un caractère dans une chaîne avec quelque chose par exemple.
&1402 WSN NIAMLAB^teertS htimS 005
3 Réponses :
Code non testé: Cependant, si le personnage n'existe pas, vous voudriez entourer cela avec un if / puis sur charindex ('^', '^ 1402 WSN Niamlab ^ Teerts htims 005 ')! = 0 code> p> p>
Bien que l'exemple de votre question soit de savoir comment remplacer uniquement la 1ère occurrence d'un caractère, votre titre indique que vous souhaitez remplacer la nième occurrence qui est un peu plus délicate.
J'ai écrit une fonction de temps en arrière pour trouver la nième occurrence d'un personnage dans une chaîne. Vous pouvez utiliser que pour construire une chaîne avec la sous-chaîne. P>
--Actual Code DECLARE @loc INT DECLARE @MyStr VARCHAR(200) DECLARE @replacement CHAR(1) SET @MySTr = '^1402 WSN NIAMLAB^teertS htimS 005' SET @replacement = '$' SELECT @loc = dbo.CHARINDEX3('^',@MyStr, 2) SELECT SUBSTRING(@myStr, 1, @loc-1) + @replacement + SUBSTRING(@MyStr, @loc + 1, LEN(@MyStr)-@loc)
Pour remplacer la première instance d'un personnage, je recommanderais l'utilisation du code> (code> et Notez que vous pouvez également utiliser charindex code> fonctions.
Stuff Code> 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 en position de départ, puis insère la deuxième chaîne dans la première chaîne en position de départ.
Stuff code> dans une requête comme suit: P>
SELECT STUFF(<yourcolumn>, CHARINDEX('^', <yourcolumn>), 1, '&')
FROM <yourtable>
Vous avez posé de nombreuses questions, les gens vous ont répondu. Veuillez contribuer en nous disant quelle réponse fonctionne pour vous. Pour chacune de vos questions passées, cochez une des réponses.