TSQL Window 函数

TSQL Window Function

我有一个包含三列的 table:

Survey   QuestionName   SurveyQuestion     SurveyAnswer
1859     Satisfied?     1                  Yes
1859     Comments?      2                  Happy with outcome, thanks
1859     Phone Number?  3                  Not Answered
2000     Satisfied?     1                  No
2000     Comments?      2                  Rep was a d1ck. 
2000     Phone Number?  3                  5166569999

我想得到的结果是 table 看起来像这样(注意:不需要 SurveyQuestion #3)

Survey   SurveyAnswer1    SurveyAnswer2     
1859     Yes              Happy with outcome, thanks
2000     No               Rep was a d1ck.                            

我只是想不出该怎么做...我已经尝试了几种方法,包括 LEAD/LAG,但无法让它工作...我我想我只需要有人为我指明正确的方向

那是四列 ;)

您可以使用旧的聚合作为交叉表栗子:

select   Survey,
         SurveyAnswer1 = max(iif(SurveyQuestion = 1, SurveyAnswer, null)),
         SurveyAnswer2 = max(iif(SurveyQuestion = 2, SurveyAnswer, null))
from     YourTable
where    SurveyQuestion != 3
group by Survey