Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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或MSEXCEL将数据从行转置到列,而不是透视或转换_Sql_Sql Server_Excel_Pivot_Transform - Fatal编程技术网

SQL或MSEXCEL将数据从行转置到列,而不是透视或转换

SQL或MSEXCEL将数据从行转置到列,而不是透视或转换,sql,sql-server,excel,pivot,transform,Sql,Sql Server,Excel,Pivot,Transform,我试图使用transpose/pivot(SQLServer2008),但是MAX函数和TRANSFORM都不适合我。有没有其他方法来实现这一点,或者使用MSEXCEL 这就是我所拥有的 ` 姓名问题答案 回答者1问题1回答 回答者1问题2回答 回答者1问题3回答 答复者1问题4答复 答复者1问题5答复 回答者2问题1回答 回答者2问题2回答者 回答者2问题3回答 答复者2问题4答复 答复者2问题5答复 答复者3问题1答复 回答者3问题2回答者 回答者3问题3回答者 答复者3问题4答复 答复者

我试图使用transpose/pivot(SQLServer2008),但是MAX函数和TRANSFORM都不适合我。有没有其他方法来实现这一点,或者使用MSEXCEL

这就是我所拥有的

`


姓名问题答案
回答者1问题1回答
回答者1问题2回答
回答者1问题3回答
答复者1问题4答复
答复者1问题5答复
回答者2问题1回答
回答者2问题2回答者
回答者2问题3回答
答复者2问题4答复
答复者2问题5答复
答复者3问题1答复
回答者3问题2回答者
回答者3问题3回答者
答复者3问题4答复
答复者3问题5答复
`

最后我想说以下几点:

`


姓名问题1问题2问题3问题4问题5
响应者1文本文本
响应者2text文本
被调查者3文本文本文本
`

这是我尝试过但失败的查询: 挑选 调查对象 最大值(当问题为“问题1”时的情况,然后回答其他空结束)为“问题1”, 最大值(当问题为“问题2”时,则回答其他空结束)为“问题2” 从桌子上 按受访者分组


我认为Excel可能是最好的解决方案,有什么想法吗?

您可以在sql中使用透视表:

Select * from tablename
Pivot( max(Answer) for Question in ([Question1], [Question2],[Question3],[Question4],[Question5])) as pivotTable

您可以在sql中使用透视表:

Select * from tablename
Pivot( max(Answer) for Question in ([Question1], [Question2],[Question3],[Question4],[Question5])) as pivotTable

遗憾的是,它没有工作,我得到:操作数数据类型ntext对于max运算符无效。无法使用MAX functionYea,MAX在varchar或nvarchar上工作,请查看是否可以将其从ntext更改为varchar,并且应该可以工作。请您告诉我如何将varchar合并到您提供的上述查询中,好吗?您可以更改列数据类型:alter TABLE tableName alter column ANSWERK varchar(MAX)遗憾的是,它不起作用,I get:操作数数据类型ntext对于max运算符无效。无法使用MAX functionYea,MAX在varchar或nvarchar上工作,请查看是否可以将其从ntext更改为varchar,并且应该可以工作。请您告诉我如何将varchar合并到您提供的上述查询中,好吗?您可以更改列数据类型:alter TABLE tableName alter column Answer varchar(MAX)
Select * from tablename
Pivot( max(Answer) for Question in ([Question1], [Question2],[Question3],[Question4],[Question5])) as pivotTable