Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Fusionner les valeurs des lignes dans un CSV (a.k.a GROUP_CONCAT pour SQL Server)

Pour chaque paire de EntityID, AttributeID utilisez l'astuce du chemin XML pour générer le CSV

 SELECT
    M.EntityID, M.AttributeID,
    SUBSTRING(CAST(foo.bar AS varchar(8000)), 2, 7999) AS Options
FROM
    (
    SELECT DISTINCT EntityID, AttributeID
    FROM MyTable
    ) M
    CROSS APPLY
    (
    SELECT
        ',' + OptionText
    FROM
        MyTable M2
    WHERE
        M.EntityID = M2.EntityID AND M.AttributeID= M2.AttributeID
    FOR XML PATH ('')
    ) foo(bar)