Convertir les valeurs séparées par des virgules en données structurées en lignes
Dans SQL Server, lorsque les données sont stockées dans un format séparé par des virgules dans une colonne , il peut être difficile d’extraire et de manipuler des valeurs individuelles. Cet article montre comment convertir ces données dans un format structuré en lignes à l'aide d'une requête de sélection.
Considérons une table nommée Sample avec une colonne appelée String contenant des virgules. valeurs séparées, telles que :
Id | String |
---|---|
1 | abc,def,ghi |
2 | jkl,mno,pqr |
Pour extraire et présenter les valeurs individuelles sous forme de lignes, nous pouvons utiliser ce qui suit étapes :
Enveloppez la colonne String dans des balises XML :
CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML)
Cela crée un fragment XML où chaque valeur est encapsulée dans un < ;M> tag.
Utilisez l'opérateur CROSS APPLY pour effectuer une requête hiérarchique :
CROSS APPLY String.nodes ('/M') AS Split(a)
Cela applique de manière croisée une méthode de nœuds sur le fragment XML, ce qui entraîne un nouveau ligne pour chaque
Combinez la colonne Id avec la colonne Split(a).value('text()') expression :
SELECT A.[id], Split.a.value('.','VARCHAR(100)') AS String FROM (SELECT [id], CAST('...AS XML) AS String FROM Sample) AS A
Cela fait correspondre l'identifiant avec les valeurs extraites et les renvoie séparément lignes.
Le résultat ressemblera au résultat souhaité :
Id | ProcessedRows |
---|---|
1 | abc |
1 | def |
1 | ghi |
2 | jkl |
2 | mno |
2 | pqr |
Cette technique permet l'extraction et la présentation de valeurs séparées par des virgules sous forme de lignes, permettant une analyse efficace et manipulation des données.
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!