Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL-Server-Unterabfrage mit einer durch Kommas getrennten Ergebnismenge

Hier ist ein Trick, den ich in der Vergangenheit verwendet habe, um ähnliche Dinge zu tun. Verwenden Sie TEILSTRING Funktion.

    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

Beachten Sie, dass die 2 verwendet wird, um das führende Komma abzuschneiden, das die Unterauswahl zum ersten Element hinzufügt, und 1000000 als große Zahl gewählt wird, um "den gesamten Rest der Zeichenfolge" zu bedeuten.