关于SQL中的数据透视

时间:2016-08-11 03:26:34

标签: sql pivot

select * from _table 
pivot (sum(_money) for _month in ([1],[2],[3],[4],[8],[12])) as A

这是我的sql代码。但如果我有更多行,这段代码不正确。我想自动添加_month列

in ([1],[2],[3],[4],[8],[12])

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

不幸的是,PIVOT要求您对列名进行硬编码。为了使用PIVOT动态引用列,您必须创建一个动态SQL语句,使用CURSOR循环并将列添加到语句中。

为了它的价值,我经历了一段时间使用PIVOT,但我几乎从不再使用过它们 - 几乎总是有更清洁的实现。