Fonction Split par des virgules dans SQL Server 2008
Je sais que cette question a été posée plusieurs fois, mais ne pouvait pas trouver ce dont j'avais besoin.
J'ai cette colonne "Ordre" qui contient des données dans le format suivant. 'xxx,yyy,zzzz'
Maintenant, quand je fais mon select
déclaration j'ai besoin pour remplir 3 colonnes par division de cette un
E. G.
Select Name,
Surname,
FirstCommaColumn=xx.UpToFirstColumn
SecondCommaColumn=xx.FromFirstCommaToLastComma,
ThirdColumnFromSecondCommaOnwards=FromSecondCommaToEnd
from myTable
--thought of doing something like
CROSS APPLY (SELECT TOP 1 * FROM dbo.SplitFunctionIDontHave(order,',')) AS xx
Il y a quelques lignes qui n'ont pas de virgules, donc je dois retourner en blanc.
Je n'ai pas l'esprit si je le fais dans une fonction ou dans la requête elle-même tout simplement pas sûr de savoir comment le faire.
Comment puis-je faire cela à l'aide de SQL Server 2008?
Cette est une partie d'un point de vue si fait une différence
Il n'y a pas de Split() fonction sql server
Jade,je sais il ny a pas, je suis à la recherche de celui qui fait ce dont j'ai besoin ou du code de fractionner la colonne.
Il serait beaucoup mieux de ne pas essayer de store plusieurs les éléments de données dans une seule colonne.
oui désolé mais j'ai déplacer ma réponse ci-dessous.
n'avez pas le choix je suis l'importation de cette base de données dans notre système.
Jade,je sais il ny a pas, je suis à la recherche de celui qui fait ce dont j'ai besoin ou du code de fractionner la colonne.
Il serait beaucoup mieux de ne pas essayer de store plusieurs les éléments de données dans une seule colonne.
oui désolé mais j'ai déplacer ma réponse ci-dessous.
n'avez pas le choix je suis l'importation de cette base de données dans notre système.
OriginalL'auteur user9969 | 2013-12-11
Vous devez vous connecter pour publier un commentaire.
J'ai changer le nom de la fonction afin de ne pas se chevauchent en ce que le
Split()
fonction fait vraiment.Voici le code:
Et ici est l'utilisation:
Oui. Et je pense que votre aide en TSQL, donc ce sera la meilleure chose que vous pouvez faire. Et j'ai préféré utiliser GetColumnValue plutôt que de le découper
Beau travail!! Je n'avais pas besoin de le faire dans un certain temps, de sorte que cela a été utile! J'ai chargé les résultats dans une table temporaire et incrémenté la colonne de 1 à chaque passage dans la boucle. À la fin, j'ai utilisé un n'existe pas à trouver la date de briser ma boucle.
OriginalL'auteur Jade
OriginalL'auteur Omkar Naik
Il n'y a pas de
Split()
fonction dans SQL Server, mais vous pouvez créer des fonctions définies par l'utilisateur.voir cette réponse Comment scinder une valeurs séparées par des virgules pour les colonnes
Veuillez voir mon nouveau posté une réponse. ESPÉRONS qu'il vous plaira.
OriginalL'auteur Jade
créer le dessous de la fonction et de l'utiliser comme ci-dessous
OriginalL'auteur Indranil.Bharambe
il semble comme une bonne affaire pour jouer avec parsename.
Modifiées à utiliser @Commande comme par exemple:
OriginalL'auteur Jayvee
/*
Cela vous permettra de partager jusqu'à 10 champs par un délimiteur. Vous pouvez de plus ajouter à la liste si vos besoins dépassent 10.
utilisation
*/
OriginalL'auteur Johnny