Heim > Datenbank > MySQL-Tutorial > Wie verkettet man mehrere SQL-Werte basierend auf einem gemeinsamen Bezeichner?

Wie verkettet man mehrere SQL-Werte basierend auf einem gemeinsamen Bezeichner?

DDD
Freigeben: 2024-12-30 22:21:10
Original
160 Leute haben es durchsucht

How to Concatenate Multiple SQL Values Based on a Common Identifier?

Mehrere Werte basierend auf einem gemeinsamen Bezeichner mit SQL verketten

Angenommen, Sie haben eine Tabelle mit zwei Spalten: Response_ID und Label, wobei mehrere Label Jeder Response_ID können Werte zugeordnet werden. Möglicherweise müssen Sie alle Label-Werte für jede eindeutige Response_ID verketten.

Dies kann mit der folgenden SQL-Anweisung erreicht werden:

-- Sample data
declare @T table(Response_ID int, Label varchar(50))
insert into @T values
(12147,          'It was not clear'),
(12458,          'Did not Undersstand'),
(12458,          'Was not resolved'),
(12458,          'Did not communicate'),
(12586,          'Spoke too fast'),
(12587,          'Too slow')

-- Query to concatenate Label values
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

Erklärung:

  • Die Unterabfrage (wählen Sie „,“ T2.Label ...) verkettet die Label-Werte für jede Response_ID in einer einzelnen Zeichenfolge, getrennt durch Kommas. Die for xml path(''), type-Klausel konvertiert die verkettete Zeichenfolge in ein XML-Fragment.
  • Der Teil .value('.', 'varchar(max)') behandelt Fälle, in denen das Label Zeichen enthält, die könnte XML-Parsing-Fehler wie & verursachen.
  • Die Funktion stuff(...) entfernt das führende Komma aus der Verkettung Zeichenfolge.
  • Schließlich aggregiert die Group-by-Klausel die verketteten Label-Werte für jede eindeutige Response_ID.

Das Ergebnis ist eine Tabelle mit einer Zeile pro Response_ID und den verketteten Label-Werten durch Kommas getrennt.

Das obige ist der detaillierte Inhalt vonWie verkettet man mehrere SQL-Werte basierend auf einem gemeinsamen Bezeichner?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage