반응형
SELECT LEVEL
, LPAD(' ' ,2*(LEVEL-1)) || NAME AS NAME
, CONNECT_BY_ROOT NAME AS ROOT_NAME
FROM TEST_TABLE_ONE
WHERE LEVEL >= 2
START WITH PP_LEVEL IS NULL
CONNECT BY PRIOR P_LEVEL = PP_LEVEL
CONNECT_BY_ROOT
최상위 노드 찾기
CONNECT_BY_ROOT NAME AS ROOT_NAME - 최상의 노드의 NAME이 조회
-- 최상의 노드의 NAME 조회
CONNECT_BY_ROOT NAME AS ROOT_NAME
LEVEL
조회되는 레벨
-- 4 레벨만 조회
LEVEL = 4
-- 2 이상 레벨만 조회
LEVLE >= 2
LEVEL = 4 - 4 레벨만 조회
LEVLE >=2 - 2 이상 레벨만 조회
START WITH
최상위 노드의 조건
-- PP_LEVEL이 NULL인 조건이 최상위 노드
START WITH PP_LEVEL IS NULL
CONNECT BY PRIOR
현재 노드 = 상위 노드
-- 현재 노드인 P_LEVEL 과 상위 노드인 PP_LEVLE을 연결
CONNECT BY PRIOR P_LEVEL = PP_LEVEL
ROW_NUMBER() OVER (PARTITION BY - ORDER BY -)
SELECT a, b, c,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY date DESC) AS sort_no
FROM table
WHERE 1 = 1;
https://devjhs.tistory.com/166
[oracle] CONNECT_BY_ROOT - 최상위 루트노드 찾기
1. CONNECT_BY_ROOT - 역할계층형 쿼리에서 최상위 노드를 찾고자 할 경우 2. CONNECT_BY_ROOT - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID P_LEVEL PP_LEVEL 1테스트1test1 1 2테스트2test2 2 1 3테스트3test3 3 1 4테스트4test4 4 2
devjhs.tistory.com
반응형
'애플리케이션 개발 > SQL' 카테고리의 다른 글
[SQL] ORA-01461 LONG 값은 LONG 열에 삽일할 때만 바인드할 수 있습니다. (0) | 2024.04.11 |
---|---|
[SQL] cron(크론) (0) | 2023.06.05 |
[SQL] 배치와 프로시저의 차이 (0) | 2023.04.05 |
Cannot delete or update a parent row (0) | 2022.08.30 |
[SQL] mysql 접속 방법 (0) | 2022.07.09 |