Konvertieren von durch Kommas getrennten Zellenwerten in einzelne Zeilen mit SQL Server
Beim Umgang mit Daten in einer Tabelle kann es manchmal vorkommen, dass Werte gespeichert werden als durch Kommas getrennte Zeichenfolgen innerhalb einer einzelnen Zelle. Um die Analyse oder Weiterverarbeitung zu erleichtern, kann es erforderlich sein, diese Werte in separate Zeilen aufzuteilen. In diesem Artikel wird untersucht, wie Sie dieses Ziel mithilfe einer SQL Server-SELECT-Abfrage erreichen.
Problem:
Betrachten Sie eine Tabelle mit dem Namen „Sample“ mit einer Spalte namens „String“. enthält durch Kommas getrennte Werte. Sie müssen die Daten in ein Format umwandeln, in dem jeder Wert eine eigene Zeile einnimmt:
Originaltabelle:
Id | String |
---|---|
1 | abc,def,ghi |
2 | jkl,mno,pqr |
Gewünschte Ausgabe:
Id | processedrows |
---|---|
1 | abc |
1 | def |
1 | ghi |
2 | jkl |
2 | mno |
2 | pqr |
Lösung:
Um die gewünschte Ausgabe zu erzielen, können Sie das folgende SELECT verwenden Abfrage:
SELECT A.[id], Split.a.value('.', 'VARCHAR(100)') AS String FROM (SELECT [id], CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String FROM TableA) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
Erklärung:
Referenz:
Weitere Informationen zu dieser Technik und alternativen Lösungen finden Sie in der folgenden Ressource:
http:/ /www.sqljason.com/2010/05/converting-single-comma-separated-row.html
Das obige ist der detaillierte Inhalt vonWie konvertiere ich durch Kommas getrennte Zellenwerte mit SQL Server in einzelne Zeilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!