Je dois récupérer les données d'une table @temp qui a quelque chose comme "ou ccc ou bbb ou aaa" Je veux remplacer la première occurrence dans l'espace pour obtenir quelque chose comme ceci "ccc ou bbb ou aaa". J'essaie des trucs et je les remplace mais ils ne semblent pas m'obtenir le résultat souhaité
Ce que j'ai essayé:
DECLARE @stringhere as varchar(500)
DECLARE @stringtofind as varchar(500)
set @stringhere='OR contains or cccc or '
set @stringtofind='or'
select STUFF('OR contains or cccc or ',PATINDEX('or', 'OR contains or cccc or '),0 ,' ')
Vous pouvez utiliser une combinaison de STUFF
et CHARINDEX
pour obtenir ce que vous voulez:
SELECT STUFF(col, CHARINDEX('substring', col), LEN('substring'), 'replacement')
FROM #temp
CHARINDEX('substring', col)
renverra l'index de l'occurrence first de 'substring'
dans la colonne. STUFF
remplace alors cette occurrence par 'replacement'
.
il semble que vous manquez 2%
précédant et suivant la chaîne cible
s'il vous plaît essayez:
select STUFF(@stringhere, PATINDEX('%' + @stringtofind + '%', @stringhere), LEN(@stringtofind), ' ')