行成列sql

时间:2017-07-17 11:26:00

标签: sql excel

我正在使用sql

读取excel文件
select ISNULL(F4,'RCS(mean)') AS WEB1_CD,cast(round(F5,2) as numeric(36,1)) 
   AS Value,ISNULL(F9,'RCS(mean)') AS WEB_MD,F10 AS Value from 
     OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 
       Xml;Database=D:\_TPRCS\SampleFileForStudy.xlsx;HDR=YES','select * FROM 
         [0537259$B22:K28]') WHERE F5 IS NOT NULL

,结果是

enter image description here

现在我想把我的行作为列,这样我就可以得到我的变量值。 我想要结果如下图所示

enter image description here

1 个答案:

答案 0 :(得分:0)

我是通过使用SQL PIVOT

完成的
SELECT [RCS(mean)] ,[STDEV], [Min],[Max]
FROM (SELECT ISNULL(F4,''RCS(mean)'') as val ,F5 FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Excel 12.0 Xml;Database=D:\_TPRCS\SampleFileForStudy.xlsx;HDR=YES'',''select * FROM [Sheet1$f24:k28]'') ) up
PIVOT (MAX(F5) FOR val IN ([RCS(mean)],[STDEV], [Min],[Max])) AS pvt