【发布时间】:2019-01-09 16:57:59
【问题描述】:
我有一个与调查相关的数据集,我必须对它们创建一个视图。数据集格式为:
surveyID RID Question Answer Comment
-----------------------------------------------------------------
17 | 123 | Q1 | 0 |
17 | 123 | Q2 | | The salesperson and manager was very considerate and I will be coming back for my next car!
17 | 123 | Q3 | 5 | Very bad behavior
要求的结果如下
surveyID | RID | Q1 | Q1_c | Q2 | Q2_c | Q3 | Q3_c
-----------------------------------------------------------------
17 | 123 | 0 | | | The... | 5 | Very...
问题和问题评论应该在上面的标题行中:
我试图获得结果,但只有当我旋转 1 列(即答案列)时我才能成功,但如何同时旋转答案和评论列?
这是我完成的查询
select rid, surveyid, --comment,
Q1,Q2,Q3
from
(
select rid, surveyid, question, --comment,
value
from
(
select rid, surveyid, question, -- comment,
answer
from #temp
) s
unpivot
(
value
for col in (answer)
) un
) src
pivot
(
max(value)
for question in (Q1, Q2, Q3)
) piv
结果如下:
surveyID | RID | Q1 | Q2 | Q3 |
-----------------------------------------------------------------
17 | 123 | 0 | | 5 |
【问题讨论】:
-
您是否尝试过从答案中旋转单独的子查询/CTE 中的 cmets,然后将两个子查询/CTE 连接在一起?
标签: sql sql-server tsql pivot unpivot