DB/ORACLE
ORACLE) CONNECT BY 함수 : 계층데이터 사용하기
code_learner
2022. 10. 1. 06:30
오라클에서는 CONNECT BY를 지원해 계층 데이터를 사용할 수 있다.
[활용]
SELECT LEVEL, MENU_SEQ, UP_MENU_SEQ, MENU_NM, RUN_YN
FROM MENU
START WITH MENU_NM = '분식'
CONNECT BY PRIOR MENU_SEQ = UP_MENU_SEQ;
-START WITH -> 시작행을 지정해 주는 조건(필수X)
-CONNECT BY -> 최초행 이후 다음행이 오는 조건
이전행의 MENU_SEQ값과 현재행의 UP_MENU_SEQ가 같다면 출력해준다.
-LEVEL 칼럼으로 해당 ROW의 DEPTH를 확인할 수 있다.
SELECT LEVEL, MENU_SEQ, UP_MENU_SEQ, MENU_NM, RUN_YN
FROM MENU
START WITH MENU_NM = '분식'
CONNECT BY PRIOR MENU_SEQ = up_menu_seq AND LEVEL < 3;
-LEVEL을 통해 CONNECT BY의 조건을 줄 수 있다.
SELECT LEVEL, MENU_SEQ, UP_MENU_SEQ, MENU_NM, RUN_YN
FROM MENU
WHERE RUN_YN = 'Y'
START WITH MENU_NM = '분식'
CONNECT BY PRIOR MENU_SEQ = UP_MENU_SEQ;
-WHERE 절은 데이터를 호출한 뒤 마지막으로 조건을 걸어 데이터를 정리한다.
SELECT LEVEL, MENU_SEQ, UP_MENU_SEQ, MENU_NM, RUN_YN
FROM MENU
WHERE RUN_YN = 'Y'
START WITH MENU_NM = '분식'
CONNECT BY PRIOR MENU_SEQ = UP_MENU_SEQ
ORDER SIBLINGS BY MENU_SEQ DESC;
-ORDER SIBLINGS BY : 계층 구조 내의 정렬순서이다.
-> LEVEL2 끼리 MENU_SEQ를 비교하고, LEVEL2의 자식인 LEVEL3내에서 MENU_SEQ를 비교한다.
[ORACLE] CONNECT BY 함수 사용하기
ORACLE 에서는 계층데이터를 위해 CONNECT BY 절을 지원합니다. CONNECT BY 구성 CONNECT BY 는 아래의 3개의 구문으로 구성됩니다. 구문 설명 WHERE 데이터를 가져온 뒤 마지막으로 조건절에 맞게 정리
mozi.tistory.com