除了CRUD查询外,我对SQL没有太多经验;如果这很琐碎,请原谅我。我正在尝试连接两个表,并在结果中创建一系列带有逗号分隔值的附加列。
表1
表2
我可以使用表从表2中获取逗号分隔的值
DECLARE @tmp varchar(MAX)
SET @tmp = ''
SELECT @tmp = @tmp + CONVERT(VARCHAR(10), [materialTypeID]) + ', '
FROM [industryActivityMaterials]
WHERE typeID = 1145 AND activityID = 1
SELECT SUBSTRING(@tmp, 0, LEN(@tmp)) AS materialsRequired
我不知道如何将typeID
上的表连接在一起以包含一组包含materialsReguired
列的结果。
您可以加入,汇总和使用汇总函数string_agg()
生成逗号分隔的列表。从SQL Server 2017开始,此功能可用。
在2016 sql server版本以下,您可以使用xml路径按字符串concat进行分组
注意,无论采用哪种方法,您都可能会发现相关子查询比大聚合更简单: