Tsql pivot返回的空值

Tsql pivot返回的空值,tsql,sql-server-2008-r2,pivot,Tsql,Sql Server 2008 R2,Pivot,我有一个类似下面的数据集(第一列是使用分区上的行数创建的): 我可以通过以下查询获取此数据集: select RNEEAN, NEEAN, GFCUS, SCSAC from #tmp where GFCUS=094328 现在,我想通过RNEEAN旋转列NEEAN,因此我尝试了以下方法: SELECT MAX([NEEAN1]) [NEEAN1],MAX([NEEAN2]) [NEEAN2],MAX([NEEAN3]) [NEEAN3], MAX([NEEAN4]) [NEEAN4], M

我有一个类似下面的数据集(第一列是使用分区上的行数创建的):

我可以通过以下查询获取此数据集:

select RNEEAN, NEEAN, GFCUS, SCSAC from #tmp where GFCUS=094328 
现在,我想通过RNEEAN旋转列NEEAN,因此我尝试了以下方法:

SELECT MAX([NEEAN1]) [NEEAN1],MAX([NEEAN2]) [NEEAN2],MAX([NEEAN3]) [NEEAN3],
MAX([NEEAN4]) [NEEAN4], MAX([NEEAN5]) [NEEAN5],MAX([NEEAN6]) [NEEAN6],MAX([NEEAN7]    [NEEAN7], MAX([NEEAN8])  [NEEAN8], MAX([NEEAN9]) [NEEAN9], GFCUS
from #tmp 
PIVOT(
    min(NEEAN) for RNEEAN in ([NEEAN1],[NEEAN2],[NEEAN3],[NEEAN4],[NEEAN5],[NEEAN6],  [NEEAN7],[NEEAN8],[NEEAN9])
) p1
where GFCUS=094328 
GROUP BY GFCUS
但我只得到9个空列和GFCUS值


请问我哪里出错了或遗漏了什么?

问题在于您的
RNEEAN
名称,然后是您在
透视中使用的列名

RNEEAN
列包含以
NEAN
开头的数据,但是您正试图以
NEEAN
的名称为轴心值-如果列名不匹配,则返回
null

使用上述数据,您必须使用:

select GFCUS, SCSAC, 
  NEAN1, NEAN2, NEAN3, NEAN4, NEAN5, NEAN6, NEAN7, NEAN8, NEAN9
from
(
  select RNEEAN, NEEAN, GFCUS, SCSAC
  from yourtable
) d
pivot
(
  min(NEEAN)
  for RNEEAN IN (NEAN1, NEAN2, NEAN3, NEAN4, NEAN5, NEAN6, NEAN7, NEAN8, NEAN9)
) piv;

select GFCUS, SCSAC, 
  NEAN1, NEAN2, NEAN3, NEAN4, NEAN5, NEAN6, NEAN7, NEAN8, NEAN9
from
(
  select RNEEAN, NEEAN, GFCUS, SCSAC
  from yourtable
) d
pivot
(
  min(NEEAN)
  for RNEEAN IN (NEAN1, NEAN2, NEAN3, NEAN4, NEAN5, NEAN6, NEAN7, NEAN8, NEAN9)
) piv;