Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

subconsulta do servidor sql com um conjunto de resultados separado por vírgula


Aqui está um truque que usei no passado para fazer coisas semelhantes. Use SUBSTRING função.
    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


Observe que o 2 é usado para cortar a vírgula inicial que a subseleção adiciona ao primeiro item, e 1000000 é escolhido como um número grande para significar "todo o resto da string".