Die clevere Kombination aus SQL Server-String-Verkettung und GROUP BY
In SQL Server gibt es eine clevere Möglichkeit, FOR XML
und PATH
zu kombinieren, um Zeichenfolgen in einer GROUP BY
-Operation zu verketten.
Ziel ist die Konvertierung folgender Daten:
<code>id Name Value 1 A 4 1 B 8 2 C 9</code>
Konvertieren in:
<code>id Column 1 A:4, B:8 2 C:9</code>
Die Schritte sind wie folgt:
Temporäre Tabelle erstellen: Erstellen Sie eine temporäre Tabelle mit demselben Schema wie die Originaltabelle.
Beispieldaten einfügen:Beispieldaten in eine temporäre Tabelle einfügen.
Strings mit FOR XML und PATH verketten: Strings innerhalb jeder ID-Gruppe mit den Methoden FOR XML
und PATH
verketten. Dazu gehört:
ID
und Name
aus. Name
und Value
für jeden Datensatz in derselben ID-Gruppe abzurufen. ,
und Name
mit einem Trennzeichen (z. B. Value
). FOR XML PATH('')
, um das Ergebnis in XML zu konvertieren. TYPE
und value()
. Gruppieren Sie nach ID und verwenden Sie STUFF:, um Ergebnisse nach ID
zu gruppieren. Verwenden Sie die Funktion STUFF
, um führende Trennzeichen (z. B. Kommas) aus Verbindungszeichenfolgen zu entfernen.
Endergebnis auswählen: Wählt ID
und verkettete Name
- und Value
-Zeichenfolgen als Column
-Spalten aus.
Temporäre Tabelle löschen: Löschen Sie die temporäre Tabelle, nachdem der Vorgang abgeschlossen ist.
Dieser Ansatz nutzt die Leistungsfähigkeit von FOR XML
und PATH
, um Zeichenfolgen in einem GROUP BY
-Vorgang effizient zu verketten, ohne Cursor, Schleifen oder benutzerdefinierte Funktionen zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich Strings innerhalb einer SQL -Servergruppe verkettet, indem Sie für den XML -Pfad verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!