【发布时间】:2019-01-26 10:29:14
【问题描述】:
我有一个大约 80k 行的表格,格式如下:
+--------+-----------+-------------------+---------------------+----------------------+-----------------+----------------+-----------------+
| SiteID | SubSiteID | DynamicPropertyID | DynamicPropertyName | DynamicPropertyValue | StaticProperty1 | StaticPropety2 | StaticProperty3 |
+--------+-----------+-------------------+---------------------+----------------------+-----------------+----------------+-----------------+
| 1 | 1 | 1 | Property1 | ABC | 1 | 1 | 1 |
| 1 | 1 | 2 | Property2 | XYZ | 1 | 1 | 1 |
| 1 | 1 | 3 | Property3 | DEF | 1 | 1 | 1 |
| 1 | 2 | 1 | Property1 | GHT | 1 | 1 | 1 |
| 1 | 2 | 2 | Property2 | XYZ | 1 | 1 | 1 |
| 1 | 2 | 3 | Property3 | WWF | 1 | 1 | 1 |
| 2 | 1 | 1 | Property1 | FHS | 1 | 1 | 1 |
| 2 | 1 | 2 | Property2 | HHS | 1 | 1 | 1 |
| 2 | 1 | 3 | Property3 | BSF | 1 | 1 | 1 |
| 2 | 2 | 1 | Property1 | QDD | 1 | 1 | 1 |
| 2 | 2 | 2 | Property2 | FFF | 1 | 1 | 1 |
| 2 | 2 | 3 | Property3 | YTR | 1 | 1 | 1 |
+--------+-----------+-------------------+---------------------+----------------------+-----------------+----------------+-----------------+
我需要做的是为这个表格创建一个视图,将表格转换为以下格式:
+--------+-----------+-----------+-----------+-----------+-----------------+-----------------+-----------------+
| SiteID | SubSiteID | Property1 | Property2 | Property3 | StaticProperty1 | StaticProperty2 | StaticProperty3 |
+--------+-----------+-----------+-----------+-----------+-----------------+-----------------+-----------------+
我面临的问题是,随着时间的推移,我们可能会向表中添加新的“动态属性”,因此如果我们将 Property4 添加到每个 SiteID,视图需要能够动态更改以添加新列/SubsiteID 组合,例如。
非常感谢任何建议或帮助。
【问题讨论】:
-
任何可以使用存储过程而不是视图的方式。不幸的是,要创建真正的动态数据透视表,您需要使用动态 sql。如果这是一个选项,那么您可以在这里查看示例stackoverflow.com/questions/10404348/…
标签: tsql sql-server-2012 ssms