Heim >Datenbank >MySQL-Tutorial >Wie verketten STUFF und FOR XML PATH Daten in SQL Server?

Wie verketten STUFF und FOR XML PATH Daten in SQL Server?

Susan Sarandon
Susan SarandonOriginal
2025-01-22 22:49:11146Durchsuche

How Do STUFF and FOR XML PATH Concatenate Data 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!

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