SQL SERVER – Fractionner une chaîne de valeurs séparées par des virgules dans une colonne à l’aide de STRING_SPLIT

Dans ce billet de blog, nous allons apprendre la fonction STRING_SPLIT qui a été introduite plus tôt dans SQL Server 2016 mais qui n’a pas encore été largement adoptée dans l’industrie. Nous allons apprendre aujourd’hui comment diviser une chaîne de valeurs séparées par des virgules dans une colonne en utilisant STRING_SPLIT.

Serveur SQL - Diviser une chaîne de valeurs séparées par des virgules dans une colonne en utilisant STRING_SPLIT split_string_example0

Serveur SQL - Split Comma Separated Value String in a Column Using STRING_SPLIT split_string_example0

Par exemple, si vous avez le jeu de résultats suivant et si vous voulez chacune des valeurs de la chaîne séparée par des virgules de la dernière colonne dans une ligne séparée, auparavant vous deviez utiliser une fonction très compliquée sur la colonne qui était un tueur de performance.

SQL SERVER - Diviser une chaîne de valeurs séparées par des virgules dans une colonne en utilisant STRING_SPLIT split_string_example2

SQL SERVER - Diviser une chaîne de valeurs séparées par des virgules dans une colonne en utilisant STRING_SPLIT split_string_example2

Maintenant, nous pouvons simplement utiliser la fonction STRING_SPLIT et y parvenir très rapidement. Comprenons avec un exemple simple.

D’abord, créons un échantillon de données.

CREATE TABLE StudentClasses(ID INT, Student VARCHAR(100), Classes VARCHAR(100))GOINSERT INTO StudentClassesSELECT 1, 'Mark', 'Maths,Science,English'UNION ALLSELECT 2, 'John', 'Science,English'UNION ALLSELECT 3, 'Robert', 'Maths,English'GOSELECT *FROM StudentClassesGO

Puis, écrivons un code qui va diviser la commande séparer la chaîne de valeur dans une colonne.

SELECT ID, Student, value FROM StudentClasses CROSS APPLY STRING_SPLIT(Classes, ',')GO

C’est tout. Nous avons terminé. C’est une tâche très simple avec l’aide de la nouvelle fonction. Vous pouvez encore nettoyer votre échantillon de données en exécutant la commande suivante.

SQL SERVER - Split Comma Separated Value String in a Column Using STRING_SPLIT split_string_example1

SQL SERVER - Split Comma Separated Value String in a Column Using STRING_SPLIT split_string_example1
DROP TABLE StudentClassesGO

Rappellez-vous , si jamais vous recevez l’erreur suivante :

Msg 208, Level 16, State 1, Line 7
Invalid object name ‘STRING_SPLIT’.

Je vous suggère de lire cet article de blog pour la solution de l’erreur ci-dessus. Cette fonction ne fonctionnera que si vous avez le niveau de compatibilité à 2016 ou plus récent.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *