sql server子查询用逗号分隔的结果集

oba*_*sta 25 sql sql-server join subquery

我需要在表上返回记录,我的结果集需要包含逗号分隔列表.

我附上了3张桌子的图片.我需要做一个select,它返回第一个表中的记录,并包含屏幕截图中第3个表中存在的最后一个AwardFocusName.

所以我的结果集将返回一条记录,并在其中包含AwardFocusNames列表(以逗号分隔).

在此输入图像描述

小智 55

这是我过去用来做类似事情的技巧.使用SUBSTRING功能.


    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

请注意,2用于切断subselect添加到第一个项目的前导逗号,并选择1000000作为一个大数字来表示"所有其余字符串".