尝试这个:
SELECT Name,
CAST(count AS VARCHAR(10)) + ',' + CAST(ProjectID AS VARCHAR(10))
AS Label FROM table1
结果
名称标签
----------------------------
安全服务 32,1
技术服务 32,7
技术服务 31,2
如果你想按Name
(类似于Group_Concate
MySQL 的东西)进行分组,SQL Server 中没有任何方法。这只是它背后的逻辑。
所以试试这个:
SELECT * FROM (
SELECT DISTINCT Name
FROM table1
) table2
CROSS APPLY
(SELECT CASE ROW_NUMBER()
OVER(ORDER BY ProjectId)
WHEN 1 THEN '' ELSE ': ' END +
(CAST(table3.count AS VARCHAR(10)) + ','
+ CAST(table3.ProjectID AS VARCHAR(10)) )
FROM table1 table3
WHERE table3.Name = table2.Name
ORDER BY ProjectID
FOR XML PATH ('')
) table3(Label)
所以结果将是
名称标签
--------------------------------
安全服务 32,1
技术服务 31,2: 32,7