将表拆分成不同级别的列
问题描述:
我已经要求将基于级别的数据拆分为3个不同的列。在下表中,SU_DC_1是基于SETTLEUNIT列的*别,我需要添加该级别。将表拆分成不同级别的列
家长:TOPSETTLUNIT 儿童:根据儿童SETTLEUNIT
我需要创建额外的3列
- 输出:
我发现很难编写查询它。能否请你帮忙 。
答
喜欢的东西:
SELECT topsettlunit,
settleunit,
CONNECT_BY_ROOT(topsettlunit) AS level1,
CASE LEVEL
WHEN 1 THEN settleunit
WHEN 2 THEN topsettlunit
END AS level2,
CASE LEVEL
WHEN 2 THEN settleunit
END AS level3
FROM your_table
START WITH topsettlunit NOT IN (SELECT settleunit FROM your_table)
CONNECT BY PRIOR settleunit = topsettlunit;
请写的东西可以理解的替代神秘缩写/代码的例子。 –
您的第一张桌子上是否有任何独特的列,或者根据我们需要构建另一张桌子的哪一列?请多说明一下 – Kalyan
@Kalyan我没有第一张桌子上的唯一标识符。基于SETTLEUNIT列我需要派生表2 – MKN