기록
DB 계층형 쿼리 본문
SELECT SEQ,
LPAD(' ',2*(LEVEL-1),' ') || TITLE AS TITLE,
WRITER,
P_SEQ,
LEVEL LVL
FROM FREEBRD
START WITH P_SEQ IS NULL
CONNECT BY PRIOR SEQ = P_SEQ
ORDER SIBLINGS BY SEQ DESC;
- LPAD : 지정한 길이만큼 왼쪽부터 특정문자로 채우는 함수입니다.
LPAD("값","총 문자길이","채움문자")
- START WITH : 최상위 루트노드를 지정합니다.
최상위 루트노드인 회장의 부모노드는 NULL이므로 P_SEQ IS NULL 이라고 작성합니다.
- CONNECT BY : 부모와 자식노드를 찾아서 연결합니다.
- PRIOR : 자식노드쪽에 붙여서 작성합니다.
- LEVEL : 오라클의 모든 실행쿼리에서 사용가능하며 트리내에서 어떤 단계에 있는지 나타내는 값입니다.
START WITH과 CONNECT BY를 사용해 부모자식노드를 연결한 후 LEVEL로 데이터를 보기쉽게 계층화 합니다.
'DB' 카테고리의 다른 글
DB 오라클 테이블 자바빈으로 카멜표기변환 (0) | 2023.02.14 |
---|---|
MERGE INTO 하나의 쿼리에 INSERT/UPDATE하기 (0) | 2023.02.08 |
CUS 기본키 생성하기 (쿼리) (0) | 2023.02.06 |
DB 테이블 다수리 테이블 짜기 (0) | 2023.02.03 |
PL/SQL 대량 INSERT 하기 / 다중 insert 쿼리 (0) | 2023.02.01 |
Comments