Heim >Datenbank >MySQL-Tutorial >Wie verketten STUFF und FOR XML PATH Daten in SQL Server?
Die clevere Kombination von STUFF und FOR XML PATH in SQL Server
In SQL Server kann die Kombination der Funktionen STUFF und FOR XML PATH Daten effizient verbinden und verarbeiten. Sehen wir uns an, wie diese beiden Funktionen zusammenarbeiten, um die gewünschte Ausgabe zu erzielen.
Die Rolle von FOR XML PATH
FÜR XML-PFAD Konvertieren Sie Abfrageergebnisse in eine Zeichenfolge von XML-Elementen. Das Hinzufügen einer leeren Zeichenfolge als Argument ('') zu FOR XML PATH erzeugt eine durch Kommas getrennte Liste von Werten. Zum Beispiel:
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH ('')</code>
Das Ergebnis ist:
<code>,aaa,bbb,ccc,ddd,eee</code>
Die Rolle von STUFF
Die STUFF-Funktion wird verwendet, um Zeichen in eine Zeichenfolge einzufügen oder zu ersetzen. Indem Sie die Startpositions- und Längenparameter als 1 angeben, entfernen Sie effektiv das erste Zeichen der Zeichenfolge:
<code class="language-sql">STUFF( (SELECT ',' + NAME FROM temp1 FOR XML PATH('') ), 1, 1, '' )</code>
Dadurch wird das Komma am Anfang der Namensliste entfernt:
<code>aaa,bbb,ccc,ddd,eee</code>
ID-basierte Verbindung
Verwenden Sie schließlich „Gruppieren nach“, um die geänderte Liste mit der ID-Spalte zu verknüpfen, um sie zu aggregieren und die gewünschte Ausgabe zurückzugeben:
<code class="language-sql">SELECT ID, abc = STUFF( (SELECT ',' + name FROM temp1 t1 WHERE t1.id = t2.id FOR XML PATH ('')) , 1, 1, '') FROM temp1 t2 GROUP BY id;</code>
Dieser Code erklärt kurz und bündig, wie STUFF und FOR XML PATH in SQL Server zusammenarbeiten, um die gewünschte Ausgabe zu erzeugen.
Das obige ist der detaillierte Inhalt vonWie verketten STUFF und FOR XML PATH Daten in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!