2017-07-25 70 views
0

我需要將特定問題代碼的是或否答覆捕獲到作爲每個特定問題代碼的指標的列中。問題代碼是設定值,因此本例只能是'A','B'或'C'。如何將具有相似ID的同一列中的不同值捕獲到具有特定列指示符的一行中

任何幫助將不勝感激,我期待着你的SQL大師可以想到的任何答案!

示例輸入表:

ID Question Code YesOrNo 
    1   A    Yes 
    1   B    No 
    1   C    No 
    2   A    No 
    2   B    Yes 
    2   C    Yes 
    3   A    No 
    3   B    No 
    3   C    Yes 

希望的表/視圖:

ID A_Answer B_Answer C_Answer 
    1 Yes   No   No 
    2 No   Yes   Yes 
    3 No   No   Yes 

爲了闡明這是SQL Server中。

回答

1

可以執行有條件聚集:

SELECT 
    Id, 
    A_Answer = MAX(CASE WHEN [Question Code] = 'A' THEN YesOrNo END), 
    B_Answer = MAX(CASE WHEN [Question Code] = 'B' THEN YesOrNo END), 
    C_Answer = MAX(CASE WHEN [Question Code] = 'C' THEN YesOrNo END) 
FROM Tbl 
GROUP BY Id; 

ONLINE DEMO

+0

這個答案真是棒極了!我們會看看它是否支持其他領域,我必須做類似的事情。謝謝! – NickBow

相關問題