SQL pivot 列转行列子

SELECT  <未透视的列>,  [第一个透视列] AS <列别名>,  [第二个透视列] AS <列别名>,   [最后一个透视列] AS <列别名

FROM (  

  <SELECT <查询) AS <源表

  PIVOT (  <聚合函数>(<列>)  

          FOR [<需要转换为行的列>] IN (  

          [第一个透视列], [第二个透视列],  

          [最后一个透视列]  )  

  ) AS <数据透视表>

 <可选的ORDER BY子句>; 

 

示例:

select
MechanicalName,PropertyNumber,BelongedTo,RecordNumber,InstallInformNO,InstallDate,TypeInform
from
MechanicalInstallInform

此处:我要将InstallInformNO相同的InstallDate时间根据TypeInform放到一行,SQL语句

SELECT * FROM (
select
MechanicalName,PropertyNumber,BelongedTo,RecordNumber,InstallInformNO,InstallDate,TypeInform
from
MechanicalInstallInform ) AS t
pivot
(
MAX(t.InstallDate) for t.TypeInform in(AZGZ,CXGZ)
)b

 

posted @ 2016-10-18 17:51  管学文  阅读(198)  评论(0编辑  收藏  举报