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;