문제
아래 SQL 결과로 알맞은 것은?
| COL |
|---|
| A |
| B |
| C |
| NULL |
SQLSELECT * FROM TAB WHERE COL IN ('A', 'B', NULL);
① A, B, C, NULL ② A, B ③ A, B, NULL ④ NULL
정답
2번
해설
정답: 2. IN 목록에 NULL이 포함되어도 COL = NULL은 TRUE가 되지 않으므로 A와 B만 조회된다.
오답 풀이
- 1번: C와 NULL은 조건을 만족하지 않는다.
- 2번: A와 B만 IN 목록의 실제 값과 일치한다.
- 3번: NULL은
IN (..., NULL)로 조회되지 않는다. - 4번: NULL만 조회되지 않는다.
보충 개념
NULL 값을 조회하려면 COL IS NULL 조건을 별도로 사용해야 한다. IN ('A','B',NULL)은 COL='A' OR COL='B' OR COL=NULL과 유사하게 동작한다.