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);
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!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn