본문 바로가기

IT/오라클

오라클 트리구조 검색 select start with

※트리 구조 검색이란?



위 와 같은 그림에서 2번을 select 하면 2,4,5,6 이, 1번을 select 하면 1,2,4,5,6,3,7을 검색 할 수있는  함수를 오라클에서는 지원합니다. mysql 이나 , mssql 에서는 직접 함수를 만들어 줘야 합니다.


1.table 구조의 예


 rownum

 code

par_code 

name 

 1

 01

 

 1

 2

 02

 01

 2

 3

 03

 01

 3

 4

 04

 02

 4

 5

 05

 02

 5

 6

 06

 02

 6

 7

 07

 03

 7



 2. 쿼리문

select * from test02 start with code='02' connect by prior code=par_code; 

( 02를 시작으로 하위 찾기 )

 >>결과<<

select * from test02 start with code='01'connect by prior code=par_code; 

(01를 시작으로 하위찾기 )



※계층형 sql 작성


Rownum : 데이터 갯수를 numbering처리 하는 부분


start with 컬럼 =0 : 계층형 sql의 시작조건 ex) start with ref=0


connect by prior : 계층형에서 연결고리를 어떻게 설정할 것인가 ? ex) num=ref


정렬 : order siblings by num desc

 - 형제관계에 있는 num는 역순(최근에 등록된 데이터 기준)으로 정렬