Maison > base de données > tutoriel mysql > Comment extraire des lignes de valeurs de colonnes séparées par des virgules dans SQL ?

Comment extraire des lignes de valeurs de colonnes séparées par des virgules dans SQL ?

Susan Sarandon
Libérer: 2025-01-03 03:39:39
original
691 Les gens l'ont consulté

How to Extract Rows from Comma-Separated Column Values in SQL?

Extraire des lignes à partir de valeurs de colonnes séparées par des virgules

Problème :

Étant donné un tableau contenant une colonne avec des valeurs séparées par des virgules valeurs, l'objectif est de convertir chaque valeur en valeurs distinctes lignes.

Requête :

SELECT A.[id],  
     Split.a.value('.', 'VARCHAR(100)') AS processedrows  
FROM  (SELECT [id],  
         CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String  
     FROM  Sample) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
Copier après la connexion

Explication :

  1. La requête interne crée une nouvelle colonne nommée Chaîne qui encapsule les valeurs d'origine séparées par des virgules dans des balises XML. Ceci est accompli à l'aide des fonctions CAST et REPLACE pour convertir les valeurs en une chaîne XML bien formée.
  2. La requête externe effectue une application croisée pour analyser la chaîne XML en nœuds à l'aide de la fonction nœuds. Chaque nœud représente une seule valeur séparée par des virgules.
  3. L'expression a.value('.','VARCHAR(100)') extrait la valeur du nœud a en tant que type de données VARCHAR(100). Cela nous donne les lignes traitées individuelles.

Référence :

  • [Conversion de valeurs de lignes séparées par une seule virgule en plusieurs lignes à l'aide de SQL XML](http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal