我有一个SELECT,它以下列形式返回数据......
ID Question Answer
1 Any Good? Yes
1 Happy? No
1 Good Staff? Yes
1 Return? N/A
2 Any Good? No
2 Happy? No
2 Good Staff? Yes
2 Return N/A
...
我需要以下面的形式......
ID Any Good? Happy? Good Staff? Return?
1 Yes No Yes N/A
2 No No Yes N/A
...
我的热门查询中的“答案”列是使用CASE .. WHEN
计算的。我想也许PIVOT
条款可以帮助我。这似乎需要聚合。我不需要聚合,只需转置。
我不介意在解决方案中明确指定每个Answer
(我猜我不得不这样做)。
任何人都知道这样做的最佳方法吗?
答案 0 :(得分:3)
你有没有试过像
这样的东西SELECT *
FROM (
SELECT ID,
Question,
Answer
FROM @Table1
) t
PIVOT (MAX(Answer) FOR Question IN ([Any Good?],[Happy?],[Good Staff?],[Return?])) p
答案 1 :(得分:1)
枢轴操作要求您使用某种形式的聚合,但是如果您只有一个值Max()
将为您获取最大(仅)值
像这样的东西应该起作用
Select *
from Table
Pivot
(
Max(answer)
For Question In ([Any Good?],[Happy?],[Good Staff?],[Return?])
)
AS P