如何在数据库中将“行值”切换为“列”?

时间:2014-11-03 23:41:19

标签: sql sql-server excel excel-vba excel-formula vba

我使用SQL Server 2008.这是我的SQL:

SELECT [CIExtendedAttributeID]
      ,[dbo].[CIExtendedAttribute].[CreatedBy]
      ,[dbo].[CIExtendedAttribute].[CreationDate]
      ,[dbo].[CIExtendedAttribute].[ModifiedBy]
      ,[dbo].[CIExtendedAttribute].[ModificationDate]
      ,[ConfigurationItemID]
      ,[Value]
      ,[dbo].[CIExtendedAttribute].[CIExtendedAttributeTypeID]
      ,[dbo].[CIExtendedAttributeType].DescrEN
  FROM [dbo].[CIExtendedAttribute]
  INNER JOIN [dbo].[CIExtendedAttributeType] ON [dbo].[CIExtendedAttribute].CIExtendedAttributeTypeID = [dbo].

[CIExtendedAttributeType].[CIExtendedAttributeTypeID]

the result :

CIExtendedAttributeID CIExtendedAttributeTypeID          DescrEN                       VALUE
 0                              1                         MAC adress                  000B6XXXXX8
 1                              1                         ESN                         100B6XXXXX8
 2                              2                         Display                     19"
 3                              2                         MAC adress                  100B6XXXXX9


I would like :

TESTCIExtendedAttributeID  TESTCIExtendedAttributeTypeID    MAC adress      ESN            Display
 0                              1                           000B6XXXXX8     100B6XXXXX8    NULL                              
 2                              2                           100B6XXXXX9            NULL    19"

我想将行值切换为列。这个例子很轻,但现实是另一回事。这可能在另一个表格或其他任何内容中。我也可以导出到Excel。

SQL Fiddle ## here

1 个答案:

答案 0 :(得分:0)

这个link中有一个关于如何进行SQL Pivot的好例子。他们提供的样本是:

4.0f

我会让你玩它来获得复杂场景所需的最终查询。