如何将具有相似 ID 的同一列中的不同值捕获到具有特定列指示符的一行中

How to capture different values in the same column with a similar ID into one row with specific column indicators

我需要将对某些问题代码的是或否答案捕获到列中,作为每个特定问题代码的指示符。问题代码是设置值,为了这个例子只能是 'A'、'B' 或 'C'。

任何帮助将不胜感激,我期待着 SQL 大师们能想到的任何答案!

示例输入 Table:

    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

想要Table/View:

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

在 SQL 服务器中澄清这一点。

您可以执行条件聚合:

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