包含派生的csv值的SELECT

时间:2015-07-08 18:28:15

标签: sql sql-server

我希望有一个SELECT作为返回字段列表的一部分,还包括来自另一个表的多个值的csv。

我有代码正在从这里确定CSV: SQL Server 2008 Rows to 1 CSV field

但是我无法使用csv值获得有效的JOIN,或者获取派生的csv值的id字段。

我的两张表是:

job (id,title,location)
skills(id, jobID, skillName, listOrder)

我想从作业中选择*,每个作业记录都有自己的衍生技能

基本上结果应该是: 1,dba,texas,[sql,xml,rdp]< - jobid = 1的技能

1 个答案:

答案 0 :(得分:1)

这似乎可以做到,你在找什么:

SELECT
  J.id
  , J.title
  , J.location
  , '[' + STUFF ((SELECT ',' + S.skillName
                  FROM Skills S
                  WHERE
                    J.id = S.jobID
                  ORDER BY S.listOrder
                  FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)')
                , 1, 1, '') + ']' skillSet
FROM Job J
GROUP BY J.id, J.title, J.location
;

查看实际操作:SQL Fiddle

如果需要调整/进一步详细说明,请发表评论。