我有两张桌子
table1 包含
pkUserSubjectid UserId fkSubjectId
15 146 1
16 146 2
17 146 4
18 147 1
19 147 3
20 148 1
21 148 3
22 149 1
23 149 3
表2 包含
pkSubjectId SubjectName
1 Maths
2 English
3 Physics
4 Chemistry
5 Computer
我希望我的结果采用这种格式
UserId SubjectName
146 Maths, English, Chemistry
147 Maths, Physics
等等
请告诉我SQL中的任何查询
答案 0 :(得分:0)
考虑构建clr聚合函数。 msdn示例函数适用于此。
http://msdn.microsoft.com/en-us/library/ms131056(v=sql.100).aspx
然后您可以执行类似
的操作SELECT a.[UserId], dbo.MyAgg(b.[SubjectName]) as [SubjectName]
FROM table1 as a
LEFT OUTER JOIN table2 as b ON a.[fkSubjectId] = b.[pkSubjectId]
GROUP BY a.[UserId]
该示例使用单个参数并使用“,”作为分隔符。您还可以创建2参数函数,如第二个示例中所示,以传入分隔符。