문제
다음 SQL의 결과는?
[TAB] COL1: 'A', 'B', NULL, 'C'
SQLSELECT * FROM TAB WHERE NOT (COL1 IN ('A', 'B'));
① 'C'인 행만 반환 ② NULL, 'C'인 행 반환 ③ 'C'인 행만 반환 (NULL 제외) ④ 전체 행 반환
정답
3번
해설
COL1 IN ('A', 'B')는 'A', 'B'에 대해 TRUE, 'C'에 대해 FALSE, NULL에 대해 UNKNOWN을 반환. NOT 연산을 적용하면 'A', 'B'는 FALSE, 'C'는 TRUE, NULL은 UNKNOWN → FALSE가 됨. WHERE 절은 TRUE인 행만 반환하므로 'C'인 행만 반환됨.