Split séparées par des virgules chaîne de ligne de table dans des lignes distinctes à l'aide de TSQL
Dire que j'ai une requête qui renvoie les éléments suivants
ID SomeValue
1 a,b,c,d
2 e,f,g
Id d'y retourner, comme suit:
ID SomeValue
1 a
1 b
1 c
1 d
2 e
2 f
2 g
J'ai déjà un UDF appelle Split qui accepte une chaîne de caractères et un delimter et de le retourner comme un tableau avec une seule colonne appelée [Valeur]. Compte tenu de cela, Comment devraient SQL regardez pour atteindre cette?
- double possible de Tsql scinde une chaîne
- Je crois qu'il a été effectivement plusieurs brésilien fois ;-).
- En fait cette question n'est pas vraiment répondre à ça. J'ai déjà une fonction qui coupe la corde. Ce que je voulais est une seule requête qui retourne les résultats d'un tableau divisé en une seconde table. De toute façon, la réponse ci-dessous fait le tour
Vous devez vous connecter pour publier un commentaire.
Sinon, vous pouvez utiliser XML comme suit:
Vous utilisez
cross apply
. Quelque chose comme ceci:STRING_SPLIT
et pasdbo.split
. docs.microsoft.com/en-us/sql/t-sql/functions/...dbo.split
est généralement une fonction définie par l'utilisateur, dans la plupart des implémentations. Juste mettre mes 2 cents qu'en 2016, il y a un système de fonction qui fait ce que nous avons eu à mettre en œuvre.Je sais que c'est un vieux post, mais je voulais ajouter ma solution pour que je puisse le trouver dans l'avenir. J'ai dû faire un petit tweak pour Stephan l' Solution pour tenir compte de valeurs qui ne contiennent PAS de délimiteur: