Database 查询以动态地将行转换为列

Database 查询以动态地将行转换为列,database,sql-server-2012,pivot,Database,Sql Server 2012,Pivot,我正在处理从表中获取值的查询 Id QuestionNo Response StartTime EndTime 101 1 2 2015-04-21 2015-04-21 101 2 1 2015-04-21 2015-04-21 101 3 4 2015-04-21 2015-04-21 104 1 3 2015-04-21 2015-04-21 104

我正在处理从表中获取值的查询

Id  QuestionNo  Response StartTime  EndTime
101 1           2        2015-04-21 2015-04-21
101 2           1        2015-04-21 2015-04-21
101 3           4        2015-04-21 2015-04-21
104 1           3        2015-04-21 2015-04-21
104 2           5        2015-04-21 2015-04-21
104 3           2        2015-04-21 2015-04-21
我想得到这样的结果

Id  Response          Response         Response         StartTime  EndTime
for QuestionNo=1  for QuestionNo=2 for QuestionNo=3 
101        2                1              4            2015-04-21 2015-04-21
104        3                5              2            2015-04-21 2015-04-21

我尝试了一些查询和pivot,但对我来说太复杂了。有人能帮我吗?非常感谢advance。

您使用的是MySQL还是SQL Server?它们不是一回事。我使用的是Microsoft SQL Server 2012。这个问题以前被问过很多次。搜索该站点以获得全面的答案列表。是的,我已经检查了该站点的SQL Server Pivot,但是这些示例对我帮助不大,因为我希望查询是动态的。在QuestionNo列的表中,我有值1,2…10,我需要检查值1,2和3,然后在单独的列中显示对应于这些值的响应。此外,如果您从一开始就尝试创建动态查询,那么您的操作是错误的。先做一个静态工作版本。用2列做一个,然后用3列做另一个,然后比较两个版本的不同之处,从而确定哪些部分是动态的,然后尝试将查询动态构建为字符串,查看该字符串,与静态查询进行比较,尝试执行它,查看结果。。。总之,不要过早放弃。