我有一个表SQL:枢轴上多列
Name | Period | Value1 | Value2
-----+---------+---------+-------
A 1 2 3
A 2 5 4
A 3 6 7
B 1 2 3
B 2 5 4
B 3 6 7
我需要一个像
Name | Value1 | Value2
-----+--------+------
A | 2,5,6 | 3,4,7
B | 2,5,6 | 3,4,7
期数是动态的结果,但我知道如何处理这样也好,为了简单起见,假设有3个阶段
以下查询为我提供了Value1的结果。我怎样才能得到结果? 我总是可以单独做它们,然后进行连接,但是表格非常大,我需要“结合”四个值,而不是两个。我可以在一个声明中做到吗?
SELECT Name,
[1]+','+ [2] + ','+ [3] ValueString
FROM (
select Name, period, cpr from #MyTable
) as s
PIVOT(SUM(Value1)
FOR period IN ([1],[2],[3])
只是注意,这是不是一个真正的支点 - 这是一个聚集。数据透视明确地将列中的值转换为新的列。在这种情况下,您可以为每个时期创建列。 –