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])
我该如何解决这个问题?
答案 0 :(得分:0)
不幸的是,PIVOT要求您对列名进行硬编码。为了使用PIVOT动态引用列,您必须创建一个动态SQL语句,使用CURSOR循环并将列添加到语句中。
为了它的价值,我经历了一段时间使用PIVOT,但我几乎从不再使用过它们 - 几乎总是有更清洁的实现。