다음 SQL의 실행 결과로 옳은 것은?[진료]진료번호진료과금액응급1내과… | [SQLD] SQL 개발자 기출유형 모의고사 6회 상세 페이지

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

[진료]

진료번호진료과금액응급
1내과8000N
2외과6000N
3외과3000Y
4내과2000Y
5소아과5000N
6소아과4000N
7(null)9000N
SELECT 진료번호, 진료과
  FROM 진료
 WHERE NOT 진료과 = '내과' AND 금액 >= 5000
    OR 응급 = 'Y'
 ORDER BY 진료번호;
1
진료번호진료과
2외과
3외과
4내과
5소아과
2
진료번호진료과
2외과
3외과
4내과
5소아과
7(null)
3
진료번호진료과
2외과
3외과
4내과
5소아과
6소아과
4
진료번호진료과
2외과
3외과
5소아과
해설

우선순위가 NOT > AND > OR 이므로 조건은 ((NOT 진료과 = '내과') AND 금액 >= 5000) OR 응급 = 'Y' 로 묶여 2·5는 앞쪽, 3·4는 응급 조건으로 남는다.

진료과가 NULL 인 7은 NOT 을 거쳐도 UNKNOWN 이라 금액이 커도 빠지고, 금액 4000 인 6도 제외된다.

  • NOT 이 AND 전체에 걸린다고 보면 6까지 잘못 포함된다.
  • NULL 을 내과가 아닌 값으로 보면 7이 잘못 포함된다.
  • OR 를 먼저 묶으면 응급인 내과 4가 빠진다.

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

이어서 풀어보기

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