
Zeilen aus durch Kommas getrennten Spaltenwerten extrahieren
Problem:
Gegeben sei eine Tabelle, die eine durch Kommas getrennte Spalte enthält Das Ziel besteht darin, jeden Wert in einen separaten Wert umzuwandeln Zeilen.
Abfrage:
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);
Nach dem Login kopieren
Erklärung:
- Die innere Abfrage erstellt eine neue Spalte mit dem Namen Zeichenfolge, die die ursprünglichen durch Kommas getrennten Werte in XML-Tags einschließt. Dies wird mithilfe der CAST- und REPLACE-Funktionen erreicht, um die Werte in eine wohlgeformte XML-Zeichenfolge umzuwandeln.
- Die äußere Abfrage führt eine Kreuzanwendung durch, um die XML-Zeichenfolge mithilfe der Knotenfunktion in Knoten zu analysieren. Jeder Knoten stellt einen einzelnen durch Kommas getrennten Wert dar.
- Der a.value('.','VARCHAR(100)')-Ausdruck extrahiert den Wert eines Knotens als VARCHAR(100)-Datentyp. Dadurch erhalten wir die einzelnen verarbeiteten Zeilen.
Referenz:
- [Konvertieren einzelner durch Kommas getrennter Zeilenwerte in mehrere Zeilen mithilfe von SQL XML](http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html)
Das obige ist der detaillierte Inhalt vonWie extrahiere ich Zeilen aus durch Kommas getrennten Spaltenwerten in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!