Heim >Datenbank >MySQL-Tutorial >Wie konvertiere ich durch Kommas getrennte Werte in Zeilen in SQL Server?

Wie konvertiere ich durch Kommas getrennte Werte in Zeilen in SQL Server?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 08:28:39293Durchsuche

How to Convert Comma-Separated Values to Rows in SQL Server?

Durch Kommas getrennte Werte in zeilenstrukturierte Daten konvertieren

In SQL Server, wenn Daten in einem durch Kommas getrennten Format innerhalb einer Spalte gespeichert werden kann es schwierig sein, einzelne Werte zu extrahieren und zu manipulieren. In diesem Artikel wird gezeigt, wie solche Daten mithilfe einer Auswahlabfrage in ein zeilenstrukturiertes Format konvertiert werden.

Stellen Sie sich eine Tabelle namens Sample mit einer Spalte namens String vor, die Komma enthält. getrennte Werte, wie zum Beispiel:

Id String
1 abc,def,ghi
2 jkl,mno,pqr

Um die einzelnen Werte zu extrahieren und als Zeilen darzustellen, können wir Folgendes verwenden Schritte:

  1. Umschließen Sie die Spalte String in XML-Tags:

    CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML)

    Dadurch wird ein XML-Fragment erstellt, in dem jeder Wert in einem < gekapselt ist ;M> Tag.

  2. Verwenden Sie den CROSS APPLY-Operator, um eine hierarchische Abfrage durchzuführen:

    CROSS APPLY String.nodes ('/M') AS Split(a)

    Dadurch wird eine Knotenmethode kreuzweise auf das XML-Fragment angewendet, was zu einem neuen führt Zeile für jedes Tag, das die einzelnen Werte enthält.

  3. Kombinieren Sie die Spalte Id mit der Spalte Split(a).value('text()') Ausdruck:

    SELECT A.[id], Split.a.value('.','VARCHAR(100)') AS String
    FROM (SELECT [id], CAST('...AS XML) AS String FROM Sample) AS A

    Dies gleicht die ID mit den extrahierten Werten ab und gibt sie als separate Werte zurück Zeilen.

Das Ergebnis ähnelt der gewünschten Ausgabe:

Id ProcessedRows
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr

Diese Technik ermöglicht die Extraktion und Darstellung von durch Kommas getrennten Werten als Zeilen und ermöglicht so eine effiziente Analyse und Manipulation der Daten.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich durch Kommas getrennte Werte in Zeilen in SQL Server?. 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