Je suis en difficulté pour que ce problème soit fait, essayant de transformer cette chaîne dans quelque chose comme p>
3 Réponses :
Vous pouvez utiliser ce qui suit L'idée est
DECLARE @str VARCHAR(500)
SET @str ='1. Create Event Flyer,3. Create Press Release,5. Promote - Social Media & Website'
SELECT STUFF((
SELECT ' / ' + STUFF(value,1,2,'')
FROM STRING_SPLIT(@str, ',')
FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'),1,3,'')
Vous manquiez une parenthèse. :RÉ
Merci @Seanlange :)
@Ericz considère que: 1. string_split () code> ne garantit pas l'ordre des substrings et 2. Vous pouvez utiliser remplacer () code> pour changer , < / code> avec / code>.
SELECT STRING_AGG(RIGHT(value,(LEN(value)-CHARINDEX(' ',value))) ,' / ')
FROM STRING_SPLIT('1. Create Event Flyer,3. Create Press Release,5. Promote - Social Media & Website',',')
Vous pouvez également utiliser CTE récursif:
declare @t varchar(500) = '1. Create Event Flyer,3. Create Press Release,5. Promote - Social Media & Website'
;With cte
as
(
select @t as string,0 as n
union all
select
cast(replace(string,concat(',', n, '. '), iif(n = 1, '', ' / ')) as varchar(500)),n+1
from cte
where n<9
)
select top 1 string from cte
order by n desc
Il serait utile que vous puissiez mettre en évidence la requête que vous utilisez et la sortie que vous obtenez.