2-5. DEPT 테이블에는 총 4 건의 데이터가 들어 있다.
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
이 때 다음 SELECT 문을 실행할 경우 몇 건의 데이터가 출력되는가?
SELECT *
FROM dept
WHERE deptno NOT IN (10, 20, NULL)
a. 0
b. 1
c. 2
d. 3
e. 4.
<해설>
이 SELECT 문을 NOT IN 대신 AND 연산자로 풀어 써 보자.
SELECT *
FROM dept
WHERE deptno != 10 AND deptno != 20 AND deptno != NULL
NULL과의 연산은 || 연산자를 제외하고는 모두 NULL로 처리되므로 deptno != NULL 의 결과는 NULL이고 이 값과의 AND 연산도 NULL이 된다. 따라서 연산의 최종 결과가 NULL이므로 WHERE 조건을 만족시키는 데이터는 하나도 없다.
정답 : (a) (<- 마우스로 정답 부분을 선택하세요)
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
이 때 다음 SELECT 문을 실행할 경우 몇 건의 데이터가 출력되는가?
SELECT *
FROM dept
WHERE deptno NOT IN (10, 20, NULL)
a. 0
b. 1
c. 2
d. 3
e. 4.
<해설>
이 SELECT 문을 NOT IN 대신 AND 연산자로 풀어 써 보자.
SELECT *
FROM dept
WHERE deptno != 10 AND deptno != 20 AND deptno != NULL
NULL과의 연산은 || 연산자를 제외하고는 모두 NULL로 처리되므로 deptno != NULL 의 결과는 NULL이고 이 값과의 AND 연산도 NULL이 된다. 따라서 연산의 최종 결과가 NULL이므로 WHERE 조건을 만족시키는 데이터는 하나도 없다.
정답 : (a) (<- 마우스로 정답 부분을 선택하세요)