다음 SQL의 실행 결과로 옳은 것은?[입고]입고번호검수상태수량I01정… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지

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

[입고]

입고번호검수상태수량
I01정상30
I02불량60
I03(null)20
I04정상70
I05보류10
I06(null)80
I07불량40
SELECT 입고번호
  FROM 입고
 WHERE 검수상태 <> '불량'
    OR 검수상태 = NULL
    OR 수량 > 50
 ORDER BY 입고번호;
1
입고번호
I01
I04
I05
2
입고번호
I01
I02
I04
I05
3
입고번호
I01
I02
I03
I04
I05
I06
4
입고번호
I01
I02
I04
I05
I06
해설

= NULL 은 어떤 행에서도 UNKNOWN이고 검수상태가 NULL 인 행은 <> 비교도 UNKNOWN 이어서, NULL 행은 수량 > 50 이 참일 때만 남는다.

그래서 I06(수량 80)은 남고 I03(수량 20)은 빠지며, 불량인 I02 는 수량 60 덕분에 남고 I07 은 빠져 5행이 된다.

  • = NULL 이 참이 되지 않으므로 I03 은 결과에 없다.
  • OR 에서는 UNKNOWN 이 있어도 다른 조건이 참이면 행이 남아 I06 이 포함된다.
  • 세 번째 조건 수량 > 50 을 빼고 보면 I02·I06 이 빠진 결과가 된다.

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

이어서 풀어보기

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