Oracle 에서 다음 SQL 의 실행 결과로 옳은 것은?[추천]고객추… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 10회
Oracle 에서 다음 SQL 의 실행 결과로 옳은 것은?

[추천]

고객추천인
K1K3
K2K1
K3K2
K4K2
SELECT LEVEL, 고객, CONNECT_BY_ISCYCLE AS 순환
  FROM 추천
 START WITH 고객 = 'K1'
CONNECT BY NOCYCLE PRIOR 고객 = 추천인
 ORDER SIBLINGS BY 고객;
1
LEVEL고객순환
1K10
2K20
3K31
3K40
2
LEVEL고객순환
1K10
2K20
3K31
3
LEVEL고객순환
1K10
2K20
3K31
4K10
3K40
4
LEVEL고객순환
1K11
2K20
3K30
3K40
해설

NOCYCLE 은 K3 의 자식으로 이미 조상인 K1 이 다시 나오는 순환을 만나도 오류 없이 그 행을 내지 않고, 순환을 일으킨 K3 에 CONNECT_BY_ISCYCLE 1을 표시한다.

K1→K2 다음 K2 의 자식 K3·K4 가 형제로 ORDER SIBLINGS BY 고객 순서에 따라 나오며, 자식이 없는 K4 는 순환이 아니므로 0이다.

  • K4 가 빠진 표는 순환을 만나면 전체 전개가 멈춘다고 본 오해이다.
  • K1 에 1을 준 표는 다시 방문될 행에 순환 표시가 붙는다고 본 것이다.
  • LEVEL 4의 K1 을 넣은 표는 NOCYCLE 이 순환 행을 한 번 더 보여 준다고 본 것이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 10회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기