-2

可能重复:
T-SQL 将行分组为列

我有一个像这样格式化的表 _data

TimeStamp                        MeterID      Value
2012-04-15 13:00:00.000          CK1992       152.64
2012-04-15 12:45:00.000          CK1992       151.695
2012-07-06 12:45:00.000          CK1992       150.84
2012-09-04 12:00:00.000          CK1992       150.66
2012-04-15 12:15:00.000          CK1992       150.57

我需要能够将该表格式化为这样的

Timestamp     MeterID1     MeterID2     MeterID3
stamphere     value        value        value

我有很多不同的 MeterID,因此需要相应地提取它。

这是我现有的选择语句:

SELECT [TimeStamp]
  ,[MeterID]
  ,[Value]
FROM [dbo].[_Data]

我怎样才能使这项工作?谢谢你的帮助!

4

1 回答 1

1

您可能会检查SQL Server 动态 PIVOT 查询中的信息?因为您不知道您将拥有多少列。

此外,您还可以使用PIVOTSQL Server 2005 中引入的方法:

当 PIVOT 和 UNPIVOT 用于升级到 SQL Server 2005 或更高版本的数据库时,数据库的兼容级别必须设置为 90 或更高。有关如何设置数据库兼容级别的信息,请参阅sp_dbcmptlevel (Transact-SQL) - MSDN

于 2012-10-12T16:44:11.197 回答