这与我创建的问题类似
Split table into different level columns
我有两个表,一个表示SETTLUNIT的级别,另一个表示原始数据。通过比较一个表,我必须创建3个新列。
像
表1:
表2:
通过查看表1中的级别,我需要在表2中添加3列。
如果是2级,我需要带1级和2级,依此类推。
输出第1行只有1级和2级,因为它在主级表中的级别为2。
您能帮我解决一下如何创建查询吗?我试过UNION,但有些人没有得到所需的输出
答案 0 :(得分:0)
听起来你正在寻找一个支点查询:
https://www.techonthenet.com/oracle/pivot.php
http://www.dba-oracle.com/t_pivot_examples.htm
https://oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1
http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html
答案 1 :(得分:0)
您不能 - 您无法知道层次结构的组织方式以及哪个父级与哪些子级相关联。
是吗:
SU_DC_1
├ SU_SP_1
│ ├ SU_PZ_012
│ └ SU_PZ_1
└ SU_SP_2
或:
SU_DC_1
├ SU_SP_1
│ └ SU_PZ_012
└ SU_SP_2
└ SU_PZ_1
或:
SU_DC_1
├ SU_SP_1
│ └ SU_PZ_1
└ SU_SP_2
└ SU_PZ_012
或:
SU_DC_1
├ SU_SP_1
└ SU_SP_2
├ SU_PZ_012
└ SU_PZ_1
使用更多标识符,可能的层次关系数量将呈指数级增长。
您需要存储级别之间的层次关系,然后您可以获得所需的输出 - 目前没有足够的信息来执行此操作。