문제
주어진 결과를 보고 빈칸에 들어갈 쿼리로 알맞은 것은?
| COL1 | COL2 |
|---|---|
| 1 | Smith |
| 2 | Charlie |
| 3 | Alice |
| 4 | NULL |
SQLSELECT COUNT(*) _______________;
<결과>
| COUNT(*) |
|---|
| 4 |
① FROM EMP WHERE COL2 LIKE '%%' ② FROM EMP ③ FROM EMP WHERE COL2 LIKE '%' ④ FROM EMP WHERE COL2 LIKE '*%'
정답
2번
해설
정답: 2. 전체 행 수는 NULL을 포함하여 4건이므로 WHERE 조건 없이 FROM EMP만 사용해야 COUNT(*) 결과가 4가 된다.
오답 풀이
- 1번: LIKE '%*%'에서 *는 임의의 한 문자를 의미하므로 NULL 행은 제외된다.
- 2번: COUNT(*)는 전체 행 수 4를 반환한다.
- 3번: LIKE '%*'도 NULL 행은 제외되므로 4가 되지 않는다.
- 4번: LIKE '_%'도 NULL 행은 제외되므로 4가 되지 않는다.
보충 개념 COUNT(*)는 NULL 여부와 관계없이 행 수를 센다. 반면 WHERE 조건에서 LIKE 비교는 대상 값이 NULL이면 UNKNOWN이 되어 결과에서 제외된다.