临时 table 的逆轴结果

unpivot result from temporary table

我尝试在逆透视结果集中获得结果,但是对于更多列我从未使用过这种技术。

我得到了一个临时 table.. 有很多字段...但重点在下面列出。

SELECT 
    u.IDNode_u,
    l.lev_u
from #Slugs
unpivot
(
  IDNode_u  for node       in (IDNodo, IDNodoPadre, [IDNodoPadre-2], [IDNodoPadre-3], [IDNodoPadre-4], [IDNodoPadre-5], [IDNodoPadre-6])
) u
unpivot
(
  lev_u   for level   in (LivelloTop, [LivelloTop-1], [LivelloTop-2], [LivelloTop-3], [LivelloTop-4], [LivelloTop-5], [LivelloTop-6])
) l

只有第一个反透视查询是正确的,第二个添加我得到错误: "The multi-part identifier "u.IDNodo_u“无法绑定。”,但我认为绑定到第二个逆轴。

有人可以给我一些建议吗? 艾伦意大利.

我认为最简单的逆透视方法是使用 cross apply:

select u.IDNode_u, l.lev_u
from #slugs s cross apply
     (values (IDNodo), (IDNodoPadre), ([IDNodoPadre-2]), ([IDNodoPadre-3]),
             ([IDNodoPadre-4]), ([IDNodoPadre-5]), ([IDNodoPadre-6])
     ) u(IDNode_u) cross apply
     (values (LivelloTop), ([LivelloTop-1]), ([LivelloTop-2]),
             ([LivelloTop-3]), ([LivelloTop-4]), ([LivelloTop-5]),
             ([LivelloTop-6])
     ) l(lev_u);

编辑:

我想你打算:

select ul.IDNode_u, ul.lev_u
from #slugs s cross apply
     (values (IDNodo, LivelloTop),
             (IDNodoPadre, [LivelloTop-1]),
             ([IDNodoPadre-2], [LivelloTop-2]),
             ([IDNodoPadre-3], [LivelloTop-3]),
             ([IDNodoPadre-4], [LivelloTop-4]),
             ([IDNodoPadre-5], [LivelloTop-5]),
             ([IDNodoPadre-6], [LivelloTop-6])
     ) ul(IDNode_u, lev_u) ;