【发布时间】:2018-02-19 14:05:45
【问题描述】:
我需要在保留重复行的同时恢复长表中的值:
IE:我的桌子:
Colname | ColValue | PK
Field1 | 12 | 1
Field2 | apple | 1
Field3 | blue | 1
Field3 | Red | 1
我想要什么:
PK | Field1| Field2 | Field3
1 |12 | apple |blue
1 |12 | apple |red
我似乎无法弄清楚如何在这种情况下使枢轴工作,以执行任何 max(colvalue) 然后删除第二个字段 3 值。动态列解决方案会很棒,因为我不一定知道字段/列的名称。
我有什么:
select PK as CompPK,
ColName,
Colvalue
from test1)
Pivot(
max(colvalue) for ColNamein ('Field1' as Field1,'Field2' as Field2,'Field3' as Field3)
这当然只是返回:
PK | Field1| Field2 | Field3
1 |12 | apple |blue
我在这张表上有一个时间戳列和其他“随机”列。
编辑:
是的。理论上我想要所有可能的迭代。
【问题讨论】:
-
如果您有多个
field2值怎么办? -
如果对于同一个pk,field1有3个值,field2有4个值,field3有5个值怎么办?您想获取这些值的所有可能组合(3*4*5=60 行)吗?