Я пытаюсь получить путь от узла root к его дочерним элементам, используя сервер SQL.
Исходные данные выглядят следующим образом:
Исходные данные
Цель должна выглядеть следующим образом:
Данные цели
Поскольку я собираюсь реализовать это в инструменте ETL исключительно с использованием преобразований ETL, Я хотел бы достичь этого результата без использования эквивалентного подхода CONNECT BY. Ниже запрос получает мне результат и еще несколько записей:
select case when level02.geography_02 is not NULL
then '3'
else case when level01.geography_02 is not null
then '2'
else case when root.geography_02 is not null
then '1'
end
end
end as levels,
root.geography_01 as root, root.geography_02 as super_parent,
case when level01.geography_02 is not null
then level01.geography_02
else ''
end as parent,
case when level02.geography_02 is not null
then level02.geography_02
else ''
end as child
from geo_table root
left join geo_table level01
on root.geography_02 = level01.geography_01
left join geo_table level02
on level01.geography_02 = level02.geography_01
Подскажите пожалуйста, как получить желаемый результат?