0
請你能幫我把這個腳本放到臨時表中。我一直在這個小時工作,它不斷給我錯誤。PIVOT和TEMP TABLE
DECLARE @PivotColumnHeaders VARCHAR(MAX)
SELECT @PivotColumnHeaders =
COALESCE(@PivotColumnHeaders + ',[' + CAST(expansion as varchar(max)) + ']',
'[' + CAST(expansio
n as varchar(max))+ ']')
INTO #temp
FROM (Select distinct expansion from #CD4_VL2) results
DECLARE @PivotTableSQL NVARCHAR(MAX)
SET @PivotTableSQL = N'
select * from
(
select subjectID,expansion,printableValue1
from #CD4_VL2) as results
PIVOT
(MAX([printableValue1])
FOR [expansion] IN (
' + @PivotColumnHeaders + '
)
) as PivotTable
--order by Performed_Date_And_Time desc
'
Execute(@PivotTableSQL)
什麼錯誤?如果是關於語法的任何事情,你有沒有嘗試*'打印'@PivotTableSQL'而不是執行'執行',然後檢查代碼? –
此外(雖然我懷疑這是問題),您應該知道[此警告](http://msdn.microsoft.com/en-us/library/ms189484.aspx):「不要在一個變量中使用SELECT語句連接值(即計算聚合值)可能會出現意外的查詢結果,這是因爲SELECT列表中的所有表達式(包括分配)不能保證每個輸出行只執行一次「 –
根據達米安的評論替代使用突變的COALESCE做'GROUP_CONCAT'就是用'STUFF'和xml,例如這裏http://stackoverflow.com/a/11985946/314291 – StuartLC