문제
다음 조건을 적용했을 때 조회되는 COL 값으로 가장 적절한 것은?
<데이터>
| COL |
|---|
| NULL |
| 1 |
| 2 |
| 3 |
| 4 |
SQLSELECT COL FROM T WHERE NOT (COL <= 2);
① NULL, 3, 4 ② 1, 2 ③ 3, 4 ④ NULL, 1, 2
정답
3번
해설
정답: 3. COL이 3 또는 4이면 COL <= 2가 FALSE이고 NOT(FALSE)는 TRUE가 된다. NULL은 비교 결과가 UNKNOWN이므로 NOT을 적용해도 UNKNOWN이며 조회되지 않는다.
오답 풀이
- 1번: NULL은 조건 결과가 TRUE가 아니므로 포함되지 않는다.
- 2번: 1, 2는 COL <= 2가 TRUE이고 NOT 처리 후 FALSE가 된다.
- 3번: 3, 4만 조회된다.
- 4번: NULL, 1, 2는 조건을 만족하지 않는다.
보충 개념 SQL WHERE 절은 TRUE인 행만 반환한다. FALSE뿐 아니라 UNKNOWN도 결과에서 제외된다.