• can be further simplified
    ; with mycte as
    (SELECT a.MemberID
          , STUFF(
          (SELECT ',' + p.ProgramName
           From MemberProgram mp
           Inner join Program p on p.programid = mp.programid
           WHERE mp.Memberid = a.Memberid
           Order By mp.isprimary DESC
           FOR XML PATH (''))
           , 1, 1, '') AS ProgramList
    FROM Member AS a
    )
    select * from mycte