sql >> Databáze >  >> RDS >> Sqlserver

Zřetězit hodnoty na základě ID

Bez pořadí podle příkazu v dílčím dotazu si nemůžete být jisti pořadím řetězců zřetězených. .value('.', 'varchar(max)') část je zde pro řešení případu Label obsahuje nevhodné pro XML znaky jako & .

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')

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


  1. Iterace přes celé číslo[] v PL/pgSQL

  2. MySQL JOIN pouze k nejnovějšímu řádku?

  3. JSON_ARRAY() – Vytvořte pole JSON ze seznamu hodnot v MySQL

  4. Nejlepší možnosti monitorování databáze dostupné pro vaši firmu