是否有可能将查询作为SQL Server中的列列表传递给PIVOT?

时间:2010-03-02 13:14:57

标签: sql sql-server tsql pivot

如您所知,PIVOT语法如下所示:

FROM table_source
PIVOT ( 
 aggregate_function ( value_column )
 FOR pivot_column
 IN ( <column_list>)
) table_alias

我想知道我们是否可以将<column_list>传递给PIVOT

在行动中,我想写

FOR DepartmentName IN (SELECT Name From Department))

而不是

FOR DepartmentName IN ([Production], [Engineering], [Marketing]))

3 个答案:

答案 0 :(得分:2)

IN列表定义了结果集布局。

应该在解析时知道。

答案 1 :(得分:1)

如果我理解正确,,您只能使用动态sql。

答案 2 :(得分:1)

拥有动态“column_list”的唯一方法是使用动态sql。您必须构建主查询,将列列表注入其中,然后运行它。

SQL Server 2005 Pivot on Unknown Number of Columns