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