2017-02-19 2 views
2

У меня есть 3 таблицы следующим образомконкатенации нескольких значений с помощью играя

JobPost_Master1_UT

JobPost_ID JobPost_Name 
----------- ----------- 
1   .Net Developer 
2   Java Developer 

Skillset_Master_UT

Skill_ID  SkillName 
----------- ----------- 
1   Javascript 
2   Bootstrap 
3   HTML 
4   .Net MVC 
5   JSP 

JobPost_Skill

JobPost_ID Skill_ID  
----------- ----------- 
1    1 
1    2 
1    3 
2    3 
2    5 

Я хочу, чтобы этот результат

JobPost_ID SkillName 
----------- ----------- 
1   Javascript,Bootstrap,HTML 
2   HTML,JSP 

Я пытаюсь это

DECLARE @SkillName VARCHAR(1000) 
SELECT @SkillName = COALESCE(@SkillName ,'') + SkillName + ',' 
FROM JobPost_Skill 
    left outer join Skillset_Master_UT 
      on Skillset_Master_UT.Skill_ID =JobPost_Skill.Skillset_ID 
    left outer join JobPost_Master1_UT 
      on JobPost_Skill.JobPost_ID =JobPost_Master1_UT.JobPost_ID 
group by JobPost_Master1_UT.JobPost_ID, @SkillName 

Но это дает мне следующий результат

SkillName 
----------- 
1 Javascript,Bootstrap,HTML,HTML,JSP 
+2

Возможный дубликат [Имитация группы \ _concat MySQL в Microsoft SQL Server 2005?] (Http://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in-microsoft-sql- server-2005) –

ответ

0

Вы должны использовать запрос следующим

SELECT JobPost_ID , STUFF((SELECT ',' + T1.Skillname 
          FROM Skillset_Master_UT T1 INNER JOIN 
            JobPost_Skill T2 ON T1.Skill_ID = T2.Skill_ID 
          WHERE T2.JobPost_ID = TBL.JobPost_ID 
          FOR XML PATH('')),1,1,'') as Skillname 
FROM JobPost_Master1_UT TBL       
+0

спасибо, что он работает нормально – Ash

+0

@Ash, если он работает нормально. Вы должны [принять ответ] (http://stackoverflow.com/tour), чтобы вопрос был отмечен как ответ – Hadi

Смежные вопросы