Oracle 기준으로 변경좌석이 있으면 변경좌석, 없으면 지정좌석, 둘… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 4회
Oracle 기준으로 변경좌석이 있으면 변경좌석, 없으면 지정좌석, 둘 다 없으면 '미배정'을 보여 주어 다음 결과를 얻으려 한다. ㉠에 들어갈 식으로 옳은 것은?

[탑승]

탑승권번호지정좌석변경좌석
B0112A(null)
B0214C3F
B03(null)(null)
B04(null)22B
B0530A30A
SELECT 탑승권번호,
       ( ㉠ ) AS 최종좌석
  FROM 탑승
 ORDER BY 탑승권번호;
탑승권번호최종좌석
B0112A
B023F
B03미배정
B0422B
B0530A
1
NVL2(변경좌석, 지정좌석, '미배정')
2
COALESCE(변경좌석, 지정좌석, '미배정')
3
NVL(NVL(지정좌석, 변경좌석), '미배정')
4
NULLIF(변경좌석, 지정좌석)
해설

COALESCE 는 인자를 왼쪽부터 보아 처음 나온 NULL 이 아닌 값을 돌려주므로 변경좌석, 지정좌석, 미배정 순서로 나열해야 결과표와 맞는다.

B02·B04 는 변경좌석, B01·B05 는 지정좌석, 둘 다 없는 B03 은 미배정이 된다.

  • 지정좌석을 먼저 보는 NVL 중첩은 B02 를 14C 로 낸다.
  • NULLIF 는 두 값이 같으면 NULL 을 돌려줄 뿐 대체값을 고르지 않는다.
  • NVL2 는 변경좌석이 있을 때 지정좌석을 내므로 B02 가 14C 가 된다.

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

이어서 풀어보기

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