Heim >Datenbank >MySQL-Tutorial >Wie verkette ich Felder aus mehreren Datensätzen in T-SQL mit FOR XML PATH()?

Wie verkette ich Felder aus mehreren Datensätzen in T-SQL mit FOR XML PATH()?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-15 07:58:46285Durchsuche

How to Concatenate Fields from Multiple Records in T-SQL Using FOR XML PATH()?

Verwenden Sie FOR XML PATH(), um Felder mehrerer Datensätze in T-SQL zu verbinden

In Ihrem speziellen Szenario, in dem Sie über mehrere Tabellen mit einer Viele-zu-Viele-Beziehung verfügen, können Sie eine Unterabfrage und die Funktion FOR XML PATH() verwenden, um die erforderlichen Felder zu verknüpfen. So erzielen Sie das gewünschte Ergebnis:

<code class="language-sql">SELECT  *,
        ( 
            SELECT  u.FName + ', '
            FROM    @Users u INNER JOIN 
                    @Reviewers rs ON u.UserID = rs.UserID
            WHERE   rs.ReviewID = r.ReviewID
            FOR XML PATH('')
        ) AS Users
FROM    @Reviews r</code>

Diese Abfrage verknüpft zunächst die Tabellen @Reviews, @Reviewers und @Users, um einen einheitlichen Datensatz zu erstellen. Anschließend wird eine Unterabfrage verwendet, um die FName-Spalte aus @Users für jede zugehörige ReviewID auszuwählen. Die Funktion FOR XML PATH() verkettet diese FName-Werte zu einer durch Kommas getrennten Zeichenfolge.

Abschließend wird die generierte Verbindungszeichenfolge der Spalte „Benutzer“ in der Haupt-SELECT-Anweisung zugewiesen. Die Ausgabe sieht so aus:

<code>ReviewID    ReviewDate          Users
1           2009-01-12          Bob, Joe, Frank
2           2009-01-25          Sue, Alice</code>

Das obige ist der detaillierte Inhalt vonWie verkette ich Felder aus mehreren Datensätzen in T-SQL mit FOR XML PATH()?. 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