Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将同一列中具有相似ID的不同值捕获到具有特定列指示符的一行中_Sql_Sql Server_Sql View - Fatal编程技术网

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

Sql 如何将同一列中具有相似ID的不同值捕获到具有特定列指示符的一行中,sql,sql-server,sql-view,Sql,Sql Server,Sql View,我需要将某些问题代码的“是”或“否”答案捕获到列中,作为每个特定问题代码的指示符。问题代码是设定值,在本例中只能是“A”、“B”或“C” 如果您能提供任何帮助,我将不胜感激,我期待着您的SQL专家能够想到的任何答案 输入表示例: ID Question Code YesOrNo 1 A Yes 1 B No 1 C No 2

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

如果您能提供任何帮助,我将不胜感激,我期待着您的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中执行。

您可以执行条件聚合:

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;

这个答案很有效!我们将看看它是否适用于其他领域,我必须做类似的事情。谢谢