446419 | 76a | 2 |
446419 | 76b | 4 |
446420 | 64a | 5 |
一表如上图,
现在要转化为如下格式,即行转化为列
76a 76b 64a
446419 2 2 null
446420 null null 5
也试过pivot 但那必须在2,4,5这一数字列聚合,现在我不想聚合只想简单的转化成列不知道怎么办.
没分了,实在不好意思.
不知道这个能不能适合楼主的实际场景
Code
-- 创建测试数据
SELECT '446419' AS Col1, '76a' AS Col2, 2 AS Col3 INTO #
UNION
SELECT '446419', '76b', 4
UNION
SELECT '446420', '64a', 5
-- 工作代码
SELECT Col1, [76a], [76b], [64a]
FROM
# AS Data
PIVOT
(
MAX(Col3) FOR Col2 IN ([76a], [76b], [64a])
) AS PVT
ORDER BY Col1
-- 删除测试数据
DROP TABLE #
友情的告诉你,不聚合你就用手搬吧
只知道用case when ,以及count等等,能够实现固定行的 行转列。。。。