CONNECT BY~ ORDER SIBLINGS BY
Oracle에서는 계층형으로 SELECT 를 해오기 위해서 CONNECT BY 함수를 지원한다.
예를 들어 이러한 데이터가 있다는 가정
MENU_CD | PARENT_MENU_CD | SORT_SQNO
SALE000 | 0 | 1
EXCAL000 | 0 | 2
OPR000 | 0 | 3
EXCAL010 | EXCAL000 | 10
SALE010 | SALE000 | 10
OPR100 | OPR000 | 10
OPR110 | OPR000 | 20
SALE020 | SALE000 | 20
SALE030 | SALE000 | 30
사용법은 다음과 같다.
START WITH PARENT_MENU_CD = '0' --대가리 조건
CONNECT BY PRIOR MENU_CD = PARENT_MENU_CD --대가리와 따까리 매핑
ORDER SIBLINGS BY SORT_SQNO --계층내에서 정렬
해당 계층 형으로 데이터는 아래와 같이 만들어진다.
SALE000 | 0 | 1
SALE010 | SALE000 | 10
SALE020 | SALE000 | 20
SALE030 | SALE000 | 30
EXCAL000 | 0 | 2
EXCAL010 | EXCAL000 | 10
OPR000 | 0 | 3
OPR100 | OPR000 | 10
OPR110 | OPR000 | 20