
Comment découper une chaîne de caractères avec séparateurs vers des lignes en SQL? Pour découper une chaîne de caractère composées d’éléments séparés par des virgules, des points-virgules, des tabulations, ou encore des points par exemple, la manière la plus efficace et la plus propre est d’utiliser les fonctions XML intégrées au langage SQL Server.
Découper une chaîne de caractère avec séparateurs d’une colonne unique vers plusieurs lignes avec SQL Server
Nous utilisons donc du T-SQL pour découper la chaîne de caractère sous SQL Server en une seule requête. Par exemple pour découper cette chaîne de caractères facilement:
“Paris.Lyon.Marseille.Nice.Toulouse.Bordeaux.Lille.Grenoble.Nantes”, nous utilisons le code suivant:
DECLARE @Chaine nvarchar(max), @Separateur char(1), @ChaineXML xml -- Assignation des variables et du séparateur, ici avec un point SELECT @Chaine = 'Paris.Lyon.Marseille.Nice.Toulouse.Bordeaux.Lille.Grenoble.Nantes', @Separateur = '.' -- Construction de la châine XML avec la fonction CONVERT() SET @ChaineXML = cast(('<ville>'+replace(@Chaine,@Separateur ,'</ville><ville>')+'</ville>') as xml) -- Sélection du résultat en parcourant la chaîne XML contenue dans la variable @ChaineXML SELECT [Value] = Resultat.c.value('.','varchar(50)') FROM @ChaineXML.nodes('ville') Resultat(c)
Le résultat est le suivant :
Si la chaîne de caractère est contenue dans une colonne d’une table SQL Server, il suffit alors d’initialiser la chaîne de caractère à partir d’une requête SQL, comme cela :
SELECT @Chaine = Colonne FROM MATABLE;
Soyez le premier à commenter