在组合两个表时需要列的唯一值

时间:2014-02-06 08:26:09

标签: sql sql-server

我使用sql server 2005从两个不同的表中获取两列。为此,我使用了以下查询..

SELECT [MHD].JobPostingId,
       [C].CandidateName 
  FROM 
       Candidate as C RIGHT JOIN MemberHiringDetails MHD 
                      ON [MHD].MemberId=[C].Id

它返回以下数据:

JobPostingId  CandidateName
60            aaa
60            bbb
63            aaa

NULL表示该候选者从该表中删除..但我需要输出如下:

JobPostingId  CandidateName
60            aaa, bbb
63            aaa

怎么做...?如果它需要存储过程手段,那么..我只需要解决方案..

1 个答案:

答案 0 :(得分:0)

同意Mahmoud Gamal,复制品。 从另一篇文章中提取并更改为您的表格:

SELECT C.name,
       STUFF((SELECT ','+ C.CandidateName
               FROM Candidate C
              WHERE C.Id = MHD.MemberId
            FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, '')
 FROM MemberHiringDetails MHD 
对于OMG小马的帖子: How do I Create a Comma-Separated List using a SQL Query?