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