메뉴 트리 등을 생성할 때 유용
WITH RECURSIVE tree_menu(menu_id, menu_nm, level, menu_path, cycle) AS
(
SELECT menu_id
, menu_nm
, 0
, array[menu_id::TEXT]
, false
FROM menu
WHERE parent_menu_id IS NULL
UNION ALL
SELECT A.menu_id
, A.menu_nm
, level + 1
, menu_path || A.menu_id::TEXT
, A.menu_id = any(menu_path)
FROM menu A, tree_menu B
WHERE A.parent_menu_id = B.menu_id
AND NOT cycle
)
SELECT menu_id
, menu_nm
, level
, ARRAY_TO_STRING(menu_path, '$')
FROM tree_menu
반응형
'데이터베이스 > PostgreSQL' 카테고리의 다른 글
PostgreSQL 컬럼명으로 Table 찾기 (0) | 2023.07.18 |
---|---|
PostgreSQL 특정 컬럼에서 LIMIT 1 (0) | 2023.07.18 |
PostgreSQL 확장 플러그인 설치 여부 (0) | 2023.07.18 |
PostgreSQL 버전 확인 (0) | 2023.07.18 |
PostgreSQL UUID 생성 (0) | 2023.07.18 |
댓글