※트리 구조 검색이란?
위 와 같은 그림에서 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는 역순(최근에 등록된 데이터 기준)으로 정렬
'IT > 오라클' 카테고리의 다른 글
[Oracle] sqldeveloper로 특수문자 입력 (0) | 2015.08.13 |
---|---|
오라클 함수 정리 (0) | 2015.03.09 |
plan table 생성 스크립트 (0) | 2014.12.11 |
오라클 insert select,update select (오라클 서브쿼리 추가) (0) | 2014.08.12 |
오라클 함수 만들기 기본 (휴대폰 번호 체크) (0) | 2014.07.09 |