0
votes

Diviser une chaîne en colonnes

Je voudrais diviser en dessous de la chaîne: xxx pré>

sortie souhaitée: p> xxx pré>

édité: p>

FAR que j'ai essayé p> xxx pré>

Je n'ai pas eu de moyen de trouver pour le reste de colonnes p>

Résultats actuels: P>

String                              Key   step substep 
?Reqid=325235&step=5&substep=13   325235   0    0


0 commentaires

6 Réponses :


1
votes

SQL Server vraiment manque de fonctions de regex, et ce type de manipulation de chaîne serait probablement mieux géré le côté de l'application.

qui étant dit, supposant que les touches sont toujours dans la même séquence, Vous pouvez faire: xxx

Démo sur db violon : xxx


0 commentaires

1
votes

En supposant un format fixe pour votre chaîne (URL), alors ce qui suit extraire les informations demandées: xxx pré>

résultat: p>

ReqID   Step    SubStep
325235  5       13


0 commentaires

0
votes

Ceci peut aider

select @string String,
substring(@string, len('?reqID=') + 1, (CHARINDEX('&step=', @string) - (len('?reqID=') + 1))) [Key],
SUBSTRING(@string, CHARINDEX('&step=', @string) + len('&step='), CHARINDEX('&substep', @string) - CHARINDEX('&step=', @string) - len('&step=')) Step,
SUBSTRING(@string, CHARINDEX('&substep=', @string) + len('&substep='), len(@string) - charindex('&substep=', @string)) Step


0 commentaires


0
votes

Ceci est une option assez simple qui devrait être facile à comprendre: xxx


0 commentaires

4
votes

SQL-Server n'est pas bien adapté à cette tâche, mais il existe un très bon travail autour de JSON (version 2016+) ou XML (Formulaire de démarrage V2005):

<x Reqid="325235" step="5" substep="13" />


0 commentaires