Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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/4/sql-server-2008/3.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 2008 - Fatal编程技术网

如何在SQL Server中转换查询结果(从行到列)

如何在SQL Server中转换查询结果(从行到列),sql,sql-server-2008,Sql,Sql Server 2008,我的查询结果如下: 所以,我想把这个结果转化为: 请注意带有空值的交叉字段。PIVOT是实现这一点的方法,一开始可能会让人困惑(至少对我来说是这样) 多亏了@[p Doe],我找到了一个很好的解决问题的方法,因为他引导我找到了解决问题的方法 链接是: 为此,您需要使用PIVOT。谷歌it——很容易学会知道你的查询返回了什么结果会很有用,否则任何人都很难给你答案。考虑向问题添加SQL。谢谢。但是,如果要转置的字段的数量是动态的呢?多亏了你的链接,我找到了另一个更好解释的链接。谢谢Javlon,

我的查询结果如下:

所以,我想把这个结果转化为:


请注意带有空值的交叉字段。

PIVOT是实现这一点的方法,一开始可能会让人困惑(至少对我来说是这样)


多亏了@[p Doe],我找到了一个很好的解决问题的方法,因为他引导我找到了解决问题的方法

链接是:


为此,您需要使用
PIVOT
。谷歌it——很容易学会知道你的查询返回了什么结果会很有用,否则任何人都很难给你答案。考虑向问题添加SQL。谢谢。但是,如果要转置的字段的数量是动态的呢?多亏了你的链接,我找到了另一个更好解释的链接。谢谢Javlon,但我的问题是我有一个动态数量的字段要转置。
 select id,SN,
 case Part when 'P1' then '1' else null end 'P1',
 case Part when 'P2' then '1' else null end 'P2',
 case Part when 'P3' then '1' else null end 'P3',
 case Part when 'P4' then '1' else null end 'P4',
 case Part when 'P5' then '1' else null end 'P5'
  from table1