【发布时间】:2012-08-12 17:19:27
【问题描述】:
我在 SQL Server 2008 中有问卷数据,我想将其转置为矩阵。
我看到了几篇关于同一主题的帖子,但我就是不明白。
给出以下表格:
Question table
Answer table
Customer table
列数:[CustomerID]、[QuestionName_1]、..、[QuestionName_n] 动态问题列数)
数据:CustomerID, Answer_1, .., Answer_n
检索列的代码:
DECLARE @columns VARCHAR(8000)
SELECT @columns = COALESCE(@columns + ',[' + cast(QuestionName as varchar) + ']',
'[' + cast(QuestionName as varchar)+ ']')
FROM Answer A
INNER JOIN Question Q ON A.QuestionID = Q.QuestionID
INNER JOIN Customer C ON A.CustomerID = C.CustomerID
GROUP BY Q.QuestionName
SET @columns = '[CustomerID],' + @columns
DECLARE @query VARCHAR(8000)
SET @query = 'Some PIVOT query without aggregation'
EXECUTE(@query)
最初的查询思路取自pivots with dynamic columns。
可以做到吗?旋转查询会是什么样子?
ps:我不想使用具有最大列数的排名。
问候,
米歇尔
【问题讨论】:
标签: sql-server-2008 pivot transpose