Sql 如何将同一列中具有相似ID的不同值捕获到具有特定列指示符的一行中
我需要将某些问题代码的“是”或“否”答案捕获到列中,作为每个特定问题代码的指示符。问题代码是设定值,在本例中只能是“A”、“B”或“C” 如果您能提供任何帮助,我将不胜感激,我期待着您的SQL专家能够想到的任何答案 输入表示例: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
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;
这个答案很有效!我们将看看它是否适用于其他领域,我必须做类似的事情。谢谢