从临时表中取消结果

时间:2017-05-31 11:01:20

标签: sql pivot field unpivot

我尝试将结果设置为一个非透明的结果集,但是有更多的列我从未使用过这种技术。

我有一个临时表..有很多字段......但重点放在下面列出。

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

只有第一个unpivot查询才可以,第二个添加我得到错误: "多部分标识符" u.IDNodo_u"不能被束缚。",但我认为必然会与第二个未开发人员绑定。

有人可以和我一起建议吗? 阿伦意大利。

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是使用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) ;