SQL Server - 如何PIVOT多个列

时间:2018-03-26 21:58:34

标签: sql-server pivot

使用这个,http://www.databasejournal.com/features/mssql/converting-rows-to-columns-pivot-and-columns-to-rows-unpivot-in-sql-server.html,作为我的参考我已经想出如何将一个动态填充的列转换为一系列列。

然而,我有2"动态"我需要PIVOT的同一源表中的列。我已经看过一些如何使用硬编码但没有(到目前为止)使用动态值的例子。

任何人都可以解释如何转动多个列吗?

我准备了这段代码来填充我的@PivotColumn变量:

--- Get unique values of pivot column  
SELECT   @PivotColumns= COALESCE(@PivotColumns + ',','') +     QUOTENAME(META_KEY)
FROM (SELECT DISTINCT META_KEY FROM [dbo].[TASK_META_DATA]) AS TASK_META_DATA

然后运行此语句以关联"展平"列到特定ID:

SET   @SQLQuery = 
'SELECT TYPE_ID, ' +   @PivotColumns + '
FROM [dbo].[TASK_META_DATA]
PIVOT (count(META_VALUE)
        FOR META_KEY IN (' + @PivotColumns + ')) AS P'

--- Execute dynamic query
EXEC sp_executesql @SQLQuery 

我想要PIVOT的第二列是META_VALUE(是的,该表有名为META_KEY和META_VALUE的列)。

我对如何构建和使用第二个PIVOT语句感到困惑。

0 个答案:

没有答案