【发布时间】:2012-03-20 10:26:50
【问题描述】:
我目前正在尝试将行表转换为 MS SQL 数据库中的列视图。我的数据目前在这样的表中:
ID OID Field DataType Value Archived
== === ==================================== ======== ===== =========
1 13 E21FC1EC-A6D9-43E2-8C8E-0F2935A7EF68 string Hello 0
2 13 6BBDE7FA-6F7A-4319-899B-2DF0E6610FA9 string World 1
3 13 91BB8616-43CD-48EC-97CD-5813B67770ED int 1 0
4 13 A98D43C3-0A9C-4173-8ECE-29AAAE1D973E int 2 1
5 13 92BB0DFF-EEAF-4A07-A65A-C3A1E1220F60 boolean true 0
6 13 1AEE3D08-5F09-4A18-80AC-344E03F6AD7B boolean false 0
我的结果集应该包含每个唯一 OID 的行,以及上表中每个字段的列。值列应该是单元格值。一个例子是:(我在这个例子中减少了列数):
OID E21FC1EC-A6D9-43E2-8C8E-0F2935A7EF68 6BBDE7FA-6F7A-4319-899B-2DF0E6610FA9 91BB8616-43CD-48EC-97CD-5813B67770ED
=== ==================================== ==================================== ====================================
13 Hello World 1
我尝试了各种方法,包括 CASE、PIVOTS 等,但我不太明白。任何解决方案都应该适用于 SQL Server 2005+。
任何帮助将不胜感激。
提前致谢,
大卫
【问题讨论】:
-
"已经尝试了各种方法,包括 CASE、PIVOTS" - 建议您发布尝试。
-
@DavidMuir:你试过在 SSRS 中使用矩阵吗?
-
旋转可能是要走的路。加快数据透视表速度的最简单方法是使用 Excel。创建一个带有列标题标签的常规表格,并使用位于数据菜单下的数据透视表向导来帮助您制作各种数据透视表。 MS Access 有一种方法可以调用内置于其中的 Excel 数据透视表工具,因此从关系表开始并制作数据透视表很容易。我不知道 MS SQL。
标签: sql sql-server sql-server-2008 sql-server-2005 tsql