
Comment découper un texte avec des séparateurs vers plusieurs lignes en SQL? Voici comment découper un texte composé d’éléments séparés par des virgules, des points-virgules, des tabulations, ou encore des points.
Une manière la efficace et simple est d’utiliser les fonctions XML intégrées au langage SQL Server et le type de données XML.
Avec SQL Server comment découper un texte avec des séparateurs en plusieurs lignes ?
Ce code T-SQL permet de découper la chaîne de caractères sous SQL Server avec une seule requête.
Par exemple pour découper cette chaîne de caractères qui contient une liste de villes Françaises facilement:
“Paris.Lyon.Marseille.Nice.Toulouse.Bordeaux.Lille.Grenoble.Nantes”
Utiliser 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 CAST() 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 :
La requête permet de découper facilement un texte en plusieurs lignes, en utilisant le séparateur
D’autre part, si une colonne dans table SQL Server contient la chaîne de caractère, alors modifier la requête. Initialiser alors la chaîne de caractère à partir d’une requête SQL Select, comme cela :
SELECT @Chaine = Colonne FROM MATABLE;
Soyez le premier à commenter