[오라클] 계층형 쿼리의 정리
계층형 쿼리
[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를 만든다.
*/
'IT > Oracle' 카테고리의 다른 글
[오라클] 조인에 대한 이해 - 2 (0) | 2018.01.17 |
---|---|
[오라클] 조인에 대한 이해 - 1 (0) | 2018.01.16 |
[오라클] 테이블 스페이스(TABLESPACE)의 이해 (0) | 2018.01.12 |
[오라클] 자주쓰는 분석 함수 정리 (0) | 2018.01.10 |
데이터 베이스 스키마 설계 (0) | 2018.01.10 |