当结果可以具有可变数量的列时,如何将 SP 的输出插入到表中?
此 SP 创建一个表,其中列数可能会有所不同。我需要将结果放入一个临时表中,以便我可以使用它来查询报告。如何创建可以处理 SP 输出的表?
DECLARE @cols AS VARCHAR(MAX),
@query AS VARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.question)
FROM temp_SURVEY_DATA c
FOR XML PATH(''), TYPE
).value('.', 'VARCHAR(MAX)') ,1,1,'')
set @query = 'SELECT responseid, moduleid, responsedatetime, ' + @cols + ' from
(select question, response, responsedatetime, responseid, moduleid
from temp_SURVEY_DATA) x
pivot
( max(response)
for question IN(' + @cols + ') ) p '
execute(@query)