我不得不建立一個動態的PIVOT在SQL Server作爲使用本文中描述的以下script:動態PIVOT查詢 - 如何將它保存在SQL Server中?
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
--Get distinct values of the PIVOT Column
SELECT @ColumnName= ISNULL(@ColumnName + ',','')
+ QUOTENAME(Course)
FROM (SELECT DISTINCT Course FROM #CourseSales) AS Courses
--Prepare the PIVOT query using the dynamic
SET @DynamicPivotQuery =
N'SELECT Year, ' + @ColumnName + '
FROM #CourseSales
PIVOT(SUM(Earning)
FOR Course IN (' + @ColumnName + ')) AS PVTTable'
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery
它的偉大工程,並預期返回一個動態表。
不過,我想能夠在其他查詢,選擇它,但無法找到一個合適的方式來做到這一點:
- 視圖不起作用,因爲它不接受變量
- 表值函數不工作,我不知道提前輸出表的結構做
- 存儲過程不起作用,因爲我不能在SELECT查詢中使用它
,會是什麼最好解決方案來保存這個動態數據透視查詢並且能夠在事後選擇它?
謝謝
西爾
您可以創建此函數來構建您的@sql變量並將其返回給您,然後在您的主查詢中,您可以在那裏執行它 – Veljko89
也就是說,如果您的主查詢包含臨時表(或臨時表例)? – Veljko89