Oracle 에서 다음 SQL을 실행한 결과에 대한 설명으로 옳은 것은… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
Oracle 에서 다음 SQL을 실행한 결과에 대한 설명으로 옳은 것은?[카테고리]
| 코드 | 이름 | 상위코드 |
|---|---|---|
| C1 | 가전 | (null) |
| C2 | 컴퓨터 | C1 |
| C3 | 노트북 | C2 |
| C4 | 주방 | C1 |
| C5 | 도서 | (null) |
SELECT 이름,
CONNECT_BY_ROOT 이름 AS 루트,
CONNECT_BY_ISLEAF AS 리프,
SYS_CONNECT_BY_PATH(이름, '/') AS 경로
FROM 카테고리
START WITH 상위코드 IS NULL
CONNECT BY PRIOR 코드 = 상위코드;1
도서 행의 경로 값은 /도서 이다
2
노트북 행의 루트 값은 컴퓨터이다
3
주방 행의 리프 값은 0이다
4
컴퓨터 행의 리프 값은 1이다
해설
SYS_CONNECT_BY_PATH는 루트부터 현재 행까지 값을 구분자로 이어 붙이되 맨 앞에도 구분자를 두므로, 단독 루트인 도서 행의 경로는 /도서 이다.
CONNECT_BY_ROOT는 그 행이 속한 트리의 루트 값을, CONNECT_BY_ISLEAF 는 자식이 없으면 1, 있으면 0을 돌려준다.
- 노트북의 루트는 시작 행인 가전이며 컴퓨터는 바로 위 상위일 뿐이다.
- 주방은 하위 행이 없는 말단이라 리프 값이 1이다.
- 컴퓨터는 하위에 노트북이 있어 리프 값이 0이다.
오류나 개정된 내용이 보이면 알려주세요