Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

sql server sub query con un set di risultati separato da virgole

Ecco un trucco che ho usato in passato per fare cose simili. Usa SOTTOSTRUTTURA funzione.

    SELECT n.nominationID
        , SUBSTRING((
                            SELECT ',' + naf.awardFocusName
                            FROM NominationAwardFocus naf
                            JOIN AwardFocus af
                                ON naf.awardFocusID = af.awardFocusID
                            WHERE n.nominationID = naf.nominationID
                            FOR XML PATH('')

                        ), 2, 1000000)
    FROM Nomination n

Nota che il 2 viene utilizzato per tagliare la virgola iniziale che la sottoselezione aggiunge al primo elemento e 1000000 viene scelto come numero grande per indicare "tutto il resto della stringa".