Oracle/ORDER SIBLINGS BY

ORDER SIBLINGS BY

Soul-Learner 2008. 1. 28. 16:56

ORDER SIBLINGS BY를 사용하기 전

SQL> col 이름 format a20;
SQL> select  LPAD(' ', (level-1)*2, ' ') || ename as 이름, mgr, sal from emp start with ename='KING'
 connect by prior empno=mgr;

이름                        MGR        SAL
-------------------- ---------- ----------
KING                                  5000
  JONES                    7839       2975
    SCOTT                  7566       3000
      ADAMS                7788       1100
    FORD                   7566       3000
      SMITH                7902        800
  BLAKE                    7839       2850
    ALLEN                  7698       1600
    WARD                   7698       1250
    MARTIN                 7698       1250
    TURNER                 7698       1500

이름                        MGR        SAL
-------------------- ---------- ----------
    JAMES                  7698        950
  CLARK                    7839       2450
    MILLER                 7782       1300

14 개의 행이 선택되었습니다.

ORDER SIBLINGS BY 를 적용한 경우

SQL> col 이름 format a20;
SQL> select  LPAD(' ', (level-1)*2, ' ') || ename as 이름, mgr, sal from emp start with ename='KING'
 connect by prior empno=mgr ORDER SIBLINGS BY empno desc;

이름                        MGR        SAL
-------------------- ---------- ----------
KING                                  5000
  CLARK                    7839       2450
    MILLER                 7782       1300
  BLAKE                    7839       2850
    JAMES                  7698        950
    TURNER                 7698       1500
    MARTIN                 7698       1250
    WARD                   7698       1250
    ALLEN                  7698       1600
  JONES                   7839       2975
    FORD                   7566       3000

이름                        MGR        SAL
-------------------- ---------- ----------
      SMITH                7902        800
    SCOTT                  7566       3000
      ADAMS                7788       1100

14 개의 행이 선택되었습니다.