我在 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)
最初的查询想法来自具有动态列的枢轴。
可以做到吗?旋转查询会是什么样子?
ps:我不想使用具有最大列数的排名。
问候,
米歇尔