예제89. 계층형 질의문으로 서열을 주고 데이터 출력하기1
- start with~/connect by prior
(예시)
select ename,level, sal,job
from emp
start with ename = 'KING'
connect by prior empno = mgr;
- level에 따라 공백을 주고 싶다면 rpad 사용 가능
-> level에 따라 오른쪽에 공백
select rpad(' ', level*3) | | ename, level, sal, job
from emp
start with ename = 'KING'
connect by prior empno = mgr;
- 특정 서열만 출력하려면 from 다음에 where 절
예제 90. 계층형 질의문으로 서열을 주고 데이터 출력하기2 : 조건
- 서열 준 뒤 조건 줄 때는 where절이 아닌 connect by 절에 작성한다.
예제 91. 계층형 질의문으로 서열을 주고 데이터 출력하기3 : 정렬
- 서열 유지하고 정렬하기
- order siblings by~
[문제1]
???? select rpad(' ',level*3) || ename, level,sal, job
from emp
start with ename = 'KINS'
connect by prior empno = mgr and ename = 'BLAKE'
order siblings by sal asc;
이렇게 하면 왜 BLAKE 부하직원은 안나오는지???
예제92. 계층형 질의문으로 서열을 주고 데이터 출력하기4
- sys_connect_by_path 함수
- 계층에 따른 경로를 오른쪽으로 나열하여 보여줌
- sys_connect_by_path(컬럼명, '구분기호')
'Skill > Oracle' 카테고리의 다른 글
Oracle 중급6 : 뷰, 인덱스, 시퀀스 (0) | 2022.05.10 |
---|---|
Oracle 중급5 : DDL (0) | 2022.05.10 |
Oracle 중급3 : DML문, LOCK (0) | 2022.05.06 |
Oracle 중급2: 집합연산자, 서브쿼리 (0) | 2022.05.05 |
Oracle 중급 1 : JOIN (0) | 2022.05.03 |