我没有和 Pivot 一起工作过。不确定使用 pivot 是否正确。是否可以显示此数据:
-------------------
| Name | Code |
-------------------
|Test A | 1 |
|Test B | 2 |
|Test C | 3 |
-------------------
在这种格式中:
------------------------------
| Customer | Fleet | Account |
------------------------------
|Test A |Test B |Test C |
------------------------------
如果代码为 1,则为客户。如果代码为 2,则为舰队。如果代码为 3,则为帐户。
您可以使用 完成此操作
pivot
,当您处理将列转换为行时,您仍然需要使用聚合。具有pivot
三个主要部分:在上面的工作示例中,我们看到分组为
Name
并且我们将结果分布code
在具有硬编码值的三列中。聚合基于 的MAX
值name
,这就是让我们通过对具有最大值且仅返回一行的组进行透视来对行进行透视的原因。现在,如果你想动态创建这个与硬编码相比,你需要查看动态 sql。
这是Aaron Bertrand在 MS SQL Tips 上关于动态数据透视表的文章