Heim > Datenbank > MySQL-Tutorial > Wie verkette ich Beschriftungen basierend auf der Antwort-ID mithilfe von SQL?

Wie verkette ich Beschriftungen basierend auf der Antwort-ID mithilfe von SQL?

Linda Hamilton
Freigeben: 2024-12-31 21:36:11
Original
260 Leute haben es durchsucht

How to Concatenate Labels Based on Response ID Using SQL?

Werte basierend auf IDs verketten: Eine Lösung mit SQL

Bei der Arbeit mit Daten besteht häufig die Notwendigkeit, Werte basierend auf gemeinsamen IDs zu verketten . In diesem Szenario stoßen wir auf eine Tabelle mit einer Liste von Antwort-IDs und zugehörigen Labels. Unser Ziel ist es, diese Daten in ein Format umzuwandeln, in dem jede Zeile die Antwort-ID und eine durch Kommas getrennte Liste von Labels anzeigt.

Um dies zu erreichen, können wir die Gruppierungs- und Verkettungsfunktionen von SQL nutzen. Wir beginnen damit, eine temporäre Tabelle namens @T zu deklarieren und sie mit den Beispieldaten zu füllen. Die folgende Abfrage beschreibt die erforderlichen Schritte:

select T1.Response_ID,
       stuff((select ','+T2.Label
              from @T as T2
              where T1.Response_ID = T2.Response_ID
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID
Nach dem Login kopieren
  1. Gruppierung: Wir gruppieren die Daten nach Response_ID mithilfe der Klausel „group by T1.Response_ID“. Dieser Schritt stellt sicher, dass wir für jede Antwort-ID mit einem einzigen Satz von Labels arbeiten.
  2. Unterabfrage: Innerhalb jeder Gruppe verwenden wir eine Unterabfrage, um die Labels abzurufen, die dieser Antwort-ID zugeordnet sind. Die Unterabfrage ruft die Label-Werte ab und kombiniert sie zu einer einzigen durch Kommas getrennten Zeichenfolge. Der Teil .value('.', 'varchar(max)') behandelt Fälle, in denen Labels XML-unfreundliche Zeichen enthalten.
  3. Verkettung: Die Funktion stuff() wird zum Verketten verwendet durch Kommas getrennte Beschriftungen in einer einzelnen Zeichenfolge. Es entfernt das führende Komma, indem es 1, 1, '' als Entfernungsargumente angibt.
  4. Projektion: Schließlich projiziert die Select-Anweisung die Response_ID und die verkettete Label-Spalte als gewünschte Ausgabe.

Durch die Ausführung dieser Abfrage erhalten wir die transformierten Daten, wobei jede Zeile eine Antwort-ID mit den zugehörigen verketteten Labels darstellt durch Kommas getrennt. Diese Lösung bietet eine effiziente Möglichkeit, Daten basierend auf gemeinsam genutzten Identifikatoren zu aggregieren und darzustellen.

Das obige ist der detaillierte Inhalt vonWie verkette ich Beschriftungen basierend auf der Antwort-ID mithilfe von 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