Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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 Server中将行移动到列_Sql_Sql Server - Fatal编程技术网

在SQL Server中将行移动到列

在SQL Server中将行移动到列,sql,sql-server,Sql,Sql Server,我尝试过使用PIVOT和其他方法来解决问题,但我似乎被卡住了 CustomerID Question Answer ........................................................... 469494 Q111 Mottok e-post 469494 Q125 Ja 469494 Q112

我尝试过使用PIVOT和其他方法来解决问题,但我似乎被卡住了

CustomerID  Question    Answer
...........................................................
469494      Q111        Mottok e-post                 
469494      Q125        Ja                            
469494      Q112        Ja                            
469494      Q113        Ingeniør eller bachelor i tekn
469494      Q16         6 Meget bra                   
我需要每个客户行包含所有答案,列是问题键的值。像这样:

CustomerID  Q111          Q125    Q112     Q113                            (etc)
.........................................................................................
469494      Mottok e-post Ja      Ja       Ingeniør eller bachelor i tekn
有多个客户在应答。有些答案是免费的

我这里的主要问题是,问题——当然还有——答案是动态的。他们正在回答一份问卷,这是一份能够运行和提取特定问卷信息的报告,具有不同的问题键,问题数量也可能不同


我没有使用PIVOT函数实现这一点,因为值不同。

搜索动态PIVOT,使用动态SQL可以实现这一点,谢谢。我再试一次。我做了一次搜索,但没能成功。我可能错过了与示例和我的特定需求的联系。线索是您使用普通的PIVOT查询并更改
选择col1、col2、col3。。。从…起枢轴(用于..IN(col1、col2、col3)
您需要使用
@cols
变量和
EXEC
itThanks更改硬编码的
col1、col2、col3
。我相信您的提示会帮助我正确理解。虽然这肯定可以通过PIVOT和动态sql实现,但我可能会认为数据库服务器可能不是实现这一点的最佳场所。这是经常发生的n在其他地方处理得更好,例如,一个网页/应用程序实际向用户呈现数据——如果存在这样的东西的话。