sql >> Database >  >> RDS >> Sqlserver

Combineer meerdere resultaten in een subquery tot één door komma's gescheiden waarde

Zelfs dit zal het doel dienen

Voorbeeldgegevens

declare @t table(id int, name varchar(20),somecolumn varchar(MAX))
insert into @t
    select 1,'ABC','X' union all
    select 1,'ABC','Y' union all
    select 1,'ABC','Z' union all
    select 2,'MNO','R' union all
    select 2,'MNO','S'

Vraag:

SELECT ID,Name,
    STUFF((SELECT ',' + CAST(T2.SomeColumn AS VARCHAR(MAX))
     FROM @T T2 WHERE T1.id = T2.id AND T1.name = T2.name
     FOR XML PATH('')),1,1,'') SOMECOLUMN
FROM @T T1
GROUP BY id,Name

Uitvoer:

ID  Name    SomeColumn
1   ABC     X,Y,Z
2   MNO     R,S


  1. Conversie mislukt bij het converteren van datum en/of tijd van tekenreeks tijdens het invoegen van datetime

  2. postgres db-bestanden - welk bestand vertegenwoordigt de specifieke tabel/index?

  3. Overschakelen van Django-project van sqlite3-backend naar postgresql mislukt bij het laden van datadump

  4. Meerdere versies van de database maken en implementeren via schema-snapshots