我有一个包含 3 列的表,代表一个矩阵:
i j val
-------
1 1 1
1 2 12
1 3 4
2 1 3
2 2 4
2 3 4
3 1 0
3 2 2
3 3 2
我将如何以我得到的方式选择此表
a1 a2 a3
-------
1 12 4
3 4 4
0 2 2
有没有办法使用 pivot 或者这里最好的方法是什么?
我有一个包含 3 列的表,代表一个矩阵:
i j val
-------
1 1 1
1 2 12
1 3 4
2 1 3
2 2 4
2 3 4
3 1 0
3 2 2
3 3 2
我将如何以我得到的方式选择此表
a1 a2 a3
-------
1 12 4
3 4 4
0 2 2
有没有办法使用 pivot 或者这里最好的方法是什么?
我知道我参加聚会有点晚了,但这不是更接近您正在寻找的东西:
SELECT [1] as a1, [2] as a2, [3] as a3
FROM
(
SELECT i, j, val
FROM T) AS source
PIVOT
(
MAX(val)
FOR j IN ([1], [2], [3])
) as pvt
此外,此链接还讨论了动态生成列。
祝你好运!
马特
SELECT [1] AS a1,
[2] AS a2,
[3] AS a3
FROM T
PIVOT (MAX(val) FOR j IN ([1],[2],[3])) AS P