오라클에서는 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
'DB > ORACLE' 카테고리의 다른 글
ORACLE) JOIN, 서브쿼리 - 다수의 테이블을 하나의 데이터로 출력하기 (0) | 2022.10.02 |
---|---|
ORACLE) 식당 데이터 구성하기 (0) | 2022.10.01 |
Oracle) NVL, NVL2(null,공백 시 치환) (0) | 2022.08.05 |
day24) [Oracle]정보 추출, 가공을 통해 원하는 데이터 얻기(INSTR, SUBSTR,REPLACE,LPAD,RTRIM,TRIM) (0) | 2022.01.30 |
day24) [Oracle] 랜덤값 입력하기 (DBMS-RANDOM, CONCAT) (0) | 2022.01.28 |
댓글