신청 내역이 한 건도 없는 수강생을 다음 결과처럼 조회하려고 한다. (… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 7회
신청 내역이 한 건도 없는 수강생을 다음 결과처럼 조회하려고 한다. ( ㉠ )에 들어갈 조건으로 옳은 것은?

[수강생]

학생번호이름
1민준
2서연
3지호
4하은
5도윤

[수강신청]

학생번호강좌번호점수
11080
220(null)
31075
(null)2090
SELECT S.이름
  FROM 수강생 S
 WHERE S.학생번호 NOT IN (SELECT R.학생번호
                            FROM 수강신청 R
                          ( ㉠ ))
 ORDER BY S.이름;
이름
도윤
하은
1
WHERE R.강좌번호 = 10
2
WHERE R.점수 >= 70
3
WHERE R.학생번호 <> NULL
4
WHERE R.학생번호 IS NOT NULL
해설

서브쿼리 결과에 NULL 이 하나라도 있으면 NOT IN 은 모든 행에서 UNKNOWN 이 되어 0행이므로, 서브쿼리에서 IS NOT NULL 로 NULL 을 걸러야 하은·도윤이 나온다.

걸러진 서브쿼리 결과는 1·2·3 이고, 여기에 없는 학생번호 4·5 만 조건을 만족한다.

  • NULL 과의 <> 비교는 늘 UNKNOWN 이라 서브쿼리가 빈 집합이 되어 다섯 명이 모두 나온다.
  • 점수 70 이상 조건은 학생번호가 NULL 인 신청 행을 남겨 결과가 0행이 된다.
  • 강좌 10 조건은 1·3 만 돌려주어 서연까지 결과에 포함된다.

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

이어서 풀어보기

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