문제
다음 SQL의 결과는?
[TAB] COL1: 10, 20, NULL, 30
SQLSELECT * FROM TAB WHERE NOT (COL1 = 20 OR COL1 IS NULL);
① 10, 30인 행 반환 ② 10, NULL, 30인 행 반환 ③ 20, NULL인 행 반환 ④ 오류 발생
정답
1번
해설
NOT (COL1 = 20 OR COL1 IS NULL)를 분석하면: COL1 = 20 OR COL1 IS NULL이 TRUE인 행은 COL1이 20이거나 NULL인 행입니다. NOT을 적용하면 이 조건이 FALSE인 행, 즉 COL1이 20도 아니고 NULL도 아닌 행이 반환됩니다. 따라서 10, 30인 행만 반환됩니다. ①(정답) NOT 연산으로 20과 NULL을 제외한 나머지. ②는 NULL이 포함되어 잘못됨. ③은 조건을 반대로 해석. ④는 문법적으로 정상적인 SQL임.