簡體   English   中英

組一欄CSV

[英]Group one Column CSV

我想獲取資源和相關技能,我想問一問是否可以將技能分組在一個列中,就像CSV這樣 在此處輸入圖片說明

ID技能
1,閱讀,寫作2,編程,閱讀

SELECT     Resources.Id, Skills.Description
FROM         Resources INNER JOIN
                      Skills_Resources ON Resources.Id = Skills_Resources.ResourceID INNER JOIN
                      Skills ON Skills_Resources.skillID = Skills.Id

為了將多個行連接在一起,您將需要使用FOR XML PATH

SELECT distinct r.Id, 
    STUFF(
         (SELECT ', ' + cast(s.description as varchar(50))
          FROM Skills s
          INNER JOIN Skills_Resources sr
            ON sr.skillID = s.Id
          where r.Id = sr.ResourceID 
          FOR XML PATH (''))
          , 1, 1, '')  AS skills
FROM Resources r;

請參閱帶有演示的SQL Fiddle

您還可以將CROSS APPLYFOR XML PATH

select distinct r.Id,  
  left(s.skill, len(s.skill)-1) skills
from Resources r
cross apply
(
  select s.description + ', '
  FROM Skills s
  INNER JOIN Skills_Resources sr
    ON sr.skillID = s.Id
  where r.Id = sr.ResourceID 
  FOR XML PATH('')
) s (skill);

參見帶有演示的SQL Fiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM