【发布时间】:2012-08-25 23:55:37
【问题描述】:
好的,我有一张像这样的表
ItemID | ColumnName | Value
1 | name | Peter
1 | phone | 12345678
1 | email | peter@host.com
2 | name | John
2 | phone | 87654321
2 | email | john@host.com
3 | name | Sarah
3 | phone | 55667788
3 | email | sarah@host.com
现在我需要把它变成这样:
ItemID | name | phone | email
1 | Peter | 12345678 | peter@host.com
2 | John | 87654321 | john@host.com
3 | Sarah | 55667788 | sarah@host.com
我一直在查看动态枢轴示例,但似乎无法将它们融入我的场景。
谁能帮忙?
【问题讨论】:
-
我在您的数据中看不到数据透视。您在第一个块中以一种奇怪的方式列出了常规列名和值,通常在第二个块中。
-
如果第一个块代表您的实际数据,那么为什么它会像这样存储而不是标准化?
-
为什么需要动态 PIVOT 来处理这些数据?这可以通过静态 PIVOT 来实现(检查我的答案)。是因为您希望 ColumnName 的值不是姓名、电话和电子邮件吗?
-
是的,列名和列数会改变。我应该提到这一点。
-
数据未标准化的相同原因。
标签: sql sql-server tsql dynamic pivot