SQLD(SQL 개발자) 기출 · NULL
아래 SQL 수행 결과로 가장 적절한 것은? 

본문)
SELECT COUNT(*) AS RESULT FROM TAB1 WHERE COL1 = 200 GROUP BY COL1;
SELECT SUM(COL2) AS RESULT FROM TAB1 WHERE COL1 = 100;
SELECT COUNT(COL1) AS RESULT FROM TAB1 WHERE COL3 = 400;이 문제 풀어보기
정답 및 해설 보기
정답: 1번
첫 번째 문장은 COL1 = 200 조건에 만족하는 값이 없고, 공집합을 GROUP BY 하면 아무것도 출력되지 않는다.
따라서 공집합에 대한 COUNT 결과는 0 이 아닌 공집합이 출력되므로 컬럼명만 출력되는 형태로 리턴된다. 두 번째 문장은 첫 번째 행에 대한 SUM(COL2)를 출력하게 되는데, 첫 번째 행의 COL2 값이 NULL 이므로 NULL 이 출력된다. NULL 로만 구성된 데이터의 SUM, AVG, MIN, MAX 등의 결과는 NULL 이 리턴되며 COUNT 만 0 으로 출력된다. 따라서 세 번째 문장의 출력값은 0 이 된다.
따라서 공집합에 대한 COUNT 결과는 0 이 아닌 공집합이 출력되므로 컬럼명만 출력되는 형태로 리턴된다. 두 번째 문장은 첫 번째 행에 대한 SUM(COL2)를 출력하게 되는데, 첫 번째 행의 COL2 값이 NULL 이므로 NULL 이 출력된다. NULL 로만 구성된 데이터의 SUM, AVG, MIN, MAX 등의 결과는 NULL 이 리턴되며 COUNT 만 0 으로 출력된다. 따라서 세 번째 문장의 출력값은 0 이 된다.