Heim > Datenbank > MySQL-Tutorial > Wie verkettet man die Vornamen mehrerer Gutachter in einer einzigen durch Kommas getrennten Zeichenfolge in T-SQL?

Wie verkettet man die Vornamen mehrerer Gutachter in einer einzigen durch Kommas getrennten Zeichenfolge in T-SQL?

Susan Sarandon
Freigeben: 2025-01-15 07:54:43
Original
401 Leute haben es durchsucht

How to Concatenate Multiple Reviewers' First Names into a Single Comma-Separated String in T-SQL?

Kombination mehrerer Datensatzfelder in T-SQL

In T-SQL ist es oft notwendig, Felder mehrerer Datensätze basierend auf einem anderen Feld zu gruppieren. Stellen Sie sich das folgende Szenario vor:

Sie haben drei Tabellen: Bewertungen, Rezensenten und Benutzer. Die Tabelle Reviews enthält ReviewID und ReviewDate. Die Reviewer-Tabelle enthält ReviewerID, ReviewID und UserID. Schließlich enthält die Tabelle Benutzer Benutzer-ID, FName und LName.

Herausforderung:

Sie möchten eine Liste von Rezensionen anzeigen, die jeweils das entsprechende Rezensionsdatum und eine durch Kommas getrennte Liste mit den Namen aller mit dieser Rezension verbundenen Rezensenten enthalten. Die gewünschte Ausgabe sieht so aus:

<code>ReviewID---ReviewDate----Users
----------------------------
1----------12/1/2009-----Bob, Joe, Frank
2----------12/9/2009-----Sue, Alice</code>
Nach dem Login kopieren

statt:

<code>ReviewID---ReviewDate---User
----------------------------
1----------12/1/2009----Bob
1----------12/1/2009----Joe
1----------12/1/2009----Frank
2----------12/9/2009----Sue
2----------12/9/2009----Alice</code>
Nach dem Login kopieren

Lösung:

Eine Möglichkeit, dieses Problem zu lösen, ist die Verwendung der Methode FOR XML PATH(''):

<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>
Nach dem Login kopieren

Hier ist eine Aufschlüsselung der Abfrage:

  • Zeile 1: Wählen Sie die erforderlichen Spalten aus der Tabelle Rezensionen aus: ReviewID und ReviewDate.

  • Zeilen 4–9: Verwenden Sie eine Unterabfrage, um eine durch Kommas getrennte Liste mit Namen für jeden Kommentar abzurufen.

      Die Unterabfrage
    • verknüpft die Tabellen Benutzer und Rezensenten basierend auf Benutzer-ID.
    • Es wählt die Spalte FName aus und verkettet nach jedem Namen ein Komma.
    • Der Abschnitt
    • FOR XML PATH('') fasst die Ergebnisse in einer einzigen Zeichenfolge zusammen.
  • Zeile 10: Das Ergebnis der -Unterabfrage wird mit dem Alias ​​Benutzer versehen.

Diese überarbeitete Ausgabe verdeutlicht den Alias ​​und verbessert die Lesbarkeit. Die Kernfunktionalität bleibt dieselbe und verkettet die Vornamen der Prüfer effizient in einer durch Kommas getrennten Zeichenfolge.

Das obige ist der detaillierte Inhalt vonWie verkettet man die Vornamen mehrerer Gutachter in einer einzigen durch Kommas getrennten Zeichenfolge in T-SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage