정리

데이터베이스 계층형쿼리(LEVEL)

디벨로프로 2020. 3. 2. 12:08
반응형

LEVEL

 

커뉴미케이션학과

 

광고홍보학과

 

언론 미디어학과      /     커뮤니케이션 학과

 

계층형 쿼리 구현하기

SELECT empno, ename, mgr
FROM emp;


SELECT empno, ename, mgr 상사번호, LPAD(ename, LEVEL*4, '*'), LEVEL
FROM emp
CONNECT BY PRIOR empno = mgr
START WITH ename='KING'; 

 

원하지 않는 계층 생략하기

SELECT empno, ename, mgr 상사번호, LPAD(ename, LEVEL*4, '*'), LEVEL
FROM emp
CONNECT BY PRIOR empno = mgr
AND ename <> 'CLARK'
START WITH ename='KING';

 

원하지 않는 개체 생략하기

SELECT empno, ename, mgr 상사번호, LPAD(ename, LEVEL*4, '*'), LEVEL
FROM emp
CONNECT BY PRIOR empno = mgr
WHERE ename <> 'CLARK'
START WITH ename='KING';

 

경로 출력하기

SELECT empno, ename, mgr 상사번호, LPAD(ename, LEVEL*4, '*'), LEVEL,
SYS_CONNECT_BY_PATH(ename,'->')
FROM emp
CONNECT BY PRIOR empno = mgr
AND ename <> 'CLARK'
START WITH ename='KING'; 

 

복습

SELECT 교수번호,담당교수번호, name,LPAD(name, LEVEL*6, '*'), LEVEL,
SYS_CONNECT_BY_PATH(name,'->')
from(
SELECT profno 담당교수번호,name,null 교수번호
FROM student
UNION ALL
SELECT null 담당교수번호,name,profno 교수번호
FROM professor)
connect by prior 교수번호 = 담당교수번호;