【发布时间】:2015-04-21 07:29:58
【问题描述】:
我遇到过这种情况,我认为最好的解决方案是使用数据透视函数,但我真的不知道该怎么做。或者也许有更好的方法来做到这一点......
我得到了这张表作为来源:
ID | version | code | property | value
-----|---------|------|----------|------
110| 1| AA| prop1| 10
110| 1| AA| prop2| 20
110| 1| AA| prop3| 30
110| 1| BB| prop1| 10
110| 1| BB| prop2| 40
110| 1| BB| prop3| 20
110| 2| AA| prop1| 50
120| 1| BB| prop2| 60
120| 2| AA| prop3| 80
我想要的结果如下:
ID | version | code | prop1 | prop2 | prop3
-----|---------|------|-------|-------|------
110| 1| AA| 10| 20| 30
110| 1| BB| 10| 40| 20
110| 2| AA| 50| |
120| 1| BB| | 60|
120| 2| AA| | | 80
所以你看我不做聚合,只是对前 3 个表的透视。 这在 TSQL 中是否可行,我使用的是 SQL Server 2012。
【问题讨论】:
-
总是
prop1、prop2和prop3? -
“无聚合”很容易实现,如果每个组中最多只有一个值,并且您选择一个聚合,如果提供单个值,则返回相同的值 - 例如 @ 987654326@、
MIN或MAX(我一般更喜欢后两者,因为它们适用于更广泛的类型) -
@wewestthemenace 是的,列可以是静态的
标签: sql sql-server tsql sql-server-2012 pivot