在SQL Server中将行转换为具有特定条件的列

问题描述:

我在SQL Server 2008中有一个这样的表

I have a table in SQL sever 2008 like this

ID Name Have
1  Book PageNumber    
2  Book Title
3  Book Papers
4  Car Wheels
5  Car Doors
6  Car Engine
7  Car Windows

我想这样改变列和行的顺序

I want to change the order of column and row like this

Name A          B      C       D
Book PageNumber Title  Papers  -
Car  Wheels     Doors  Engine  Windows

是否可以编写一个自动进行此更改的查询? 我已经在Microsoft Access中使用交叉表完成了此操作,但是在SQL中我没有任何想法.

Is it possible to write a query that automatically make this change? I have done this in Microsoft Access with Cross Table but in SQL i don't have any idea.

致谢

您可以使用结果:

NAME    A               B         C         D
------------------------------------------------------------
Book    PageNumber      Title     Papers    (null)
Car     Wheels          Doors     Engine    Windows

SQLFiddle演示