我尝试将结果设置为一个非透明的结果集,但是有更多的列我从未使用过这种技术。
我有一个临时表..有很多字段......但重点放在下面列出。
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"不能被束缚。",但我认为必然会与第二个未开发人员绑定。
有人可以和我一起建议吗? 阿伦意大利。
答案 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) ;