본문 바로가기

Paul Work/Sql

CONNECT BY를 이용한 정렬

EXPENSE_CODE = 기본키
EXPENSE_PCODE = 부모의 정보를 가지고 있는 키 

    SELECT EXPENSE_CODE, EXPENSE_PCODE, EXPENSE_NAME_KOR, 
                 SORT_NO, ROWNUM RNT, EXPENSE_LEVEL
       FROM BSC_EXPENSE_CODE
     WHERE EXPENSE_CODE IS NOT NULL
      START WITH EXPENSE_CODE = '111'
 CONNECT BY PRIOR EXPENSE_CODE = EXPENSE_PCODE
      ORDER BY SORT_NO

EXPENSE_CODE 값이 NULL인것을 제외한 START WITH 값을 시작으로 해서 값을 추출 해낸다.
그리고 뽑아온 데이터는 ORDER BY에 의해 순차적으로 정렬이 되어짐

SORT_NO는 상위 메뉴부터 1, 2 ... 순으로 정의 됨

 아래와 같은 형태로 데이터가 보여짐

데이터  1
             2
                3
                3
             2
                3