문제
TAB1의 쿼리문 수행 결과로 옳은 것은?
| COL1 |
|---|
| a |
| b |
| c |
SQLSELECT COL1 FROM TAB1 WHERE COL1 = 'z'; SELECT MAX(COL1) FROM TAB1 WHERE COL1 = 'z';
① NULL, NULL ② NULL, 공집합 ③ 공집합, NULL ④ 공집합, 공집합
정답
3번
해설
정답: 3. 일반 SELECT는 조건을 만족하는 행이 없으면 공집합을 반환하고, 집계 함수 MAX는 대상 행이 없어도 한 행의 NULL을 반환한다.
오답 풀이
- 1번: 첫 번째 SELECT는 NULL 한 행이 아니라 공집합이다.
- 2번: 두 번째 MAX 결과가 공집합이 아니라 NULL이다.
- 3번: 공집합, NULL이 옳다.
- 4번: 집계 함수는 조건에 맞는 행이 없어도 결과 행을 반환한다.
보충 개념 집계 함수는 GROUP BY가 없을 때 전체 결과 집합에 대해 하나의 결과를 반환한다. 대상 행이 없으면 COUNT는 0, MAX/MIN/SUM/AVG는 NULL을 반환한다.