IT/오라클
오라클 트리구조 검색 select start with
알 수 없는 사용자
2014. 12. 18. 17:16
※트리 구조 검색이란?
위 와 같은 그림에서 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는 역순(최근에 등록된 데이터 기준)으로 정렬