728x90

    계층형 쿼리



    [start with, connect by prior]

    계층형 쿼리

    --계층형 쿼리의 사용 : 전자결제 등에 사용



    select *

    from employees;

    -- 사원번호 100 번 아래의 모든 사원들을 추출하세요.

    from employees

    start with employee_id = 100

    connect by prior employee_id = manager_id

    /*

    connect by prior employee_id ->(스타트 되어진 칼럼값을 가져온다) -- 100

    여기는 출발지점이기때문에 고유한값만 가능, (중복이 되어지는 값이면 안된다)

    employee_id = manager_id -> employee_id와 manager_id의 값과 같은 것끼리 연결시킨다.

    상관의 값이 100인 101번이 다시 스타트값으로 올라가고 manager_id와 같은 것을 찾아간다.(반복)

    */



    [level 키워드]

    계층형 쿼리

    -- 사원번호 100 번 아래의 모든 사원들을 추출하세요.


    select level, employee_id, first_name, last_name, manager_id

    from employees

    start with employee_id = 100

    connect by prior employee_id = manager_id

    ;

    /*level은 평상시에 안나오고 start with가 나왓을때만 쓸수있는 칼럼.

    */

    데이터 출력)

    계층형 쿼리


    [반대로도 계층형 쿼리를 조회할수 있다.]

    계층형 쿼리

    -- 사원번호 105 번 위의 모든 사원들을 추출하세요.


    select level, employee_id, first_name, last_name, manager_id

    from employees

    start with employee_id = 105

    connect by prior manager_id = employee_id

    ;

    /*prior 바로 뒤에는 내가 찾고자 하는 값을 지정해줘야한다.

    105번은 103매니저_id를 만든다.

    */


    아하하-[이모티콘]어밴드



    Posted by 천상나타