카테고리 없음
[postgresql] connect by 구현
진열사랑
2021. 4. 24. 22:12
출처 : m.blog.naver.com/wiseyoun07/221135850258
with recursive MENU_V (MENU_ID, MENU_NM, UPPER_MENU_ID, MENU_ODR, dep, pth, cyc)
as (
SELECT M.MENU_ID, M.MENU_NM, M.UPPER_MENU_ID, M.MENU_ODR, 1,
array[m.menu_ID::text] AS pth, false
FROM t_cm_menu M
WHERE m.use_yn = 'Y'
and m.MENU_ID = 'TOP'
union all
select M.MENU_ID, M.MENU_NM, M.UPPER_MENU_ID, M.MENU_ODR, v.dep + 1,
array_append( v.pth, m.menu_id::text) AS pth , m.menu_id = any(v.pth)
from t_cm_menu m, menu_v v
where m.upper_menu_id = v.MENU_ID
and not cyc
)
SELECT *
from menu_v
order by pth