[SQL 질문] NOT IN 문법에 대해서 0 3 6,057

by 뭉게뭉게 NOT IN [2012.04.25 13:24:27]


create table test(c1 varchar(10), c2 varchar(10));
insert into test values('AAAAA','TTTTT');
insert into test values('','TTTTT');
insert into test values('CCCCC','TTTTT');
commit;
위와 같이 test 테이블을 만들고 아래와 같이 쿼리를 실행하면 결과가 다음과 같이 나옵니다.

SQL> select * from test where c1 not in ('AAAAA');

C1 C2
---------- ----------
CCCCC   TTTTT

결과가 아래와 같이 나올것 같은데 왜 위와 같은 결과가 나오나요??
C1 C2
---------- ----------
TTTTT
CCCCC   TTTTT

위와 같은 결과가 나오기 위해서
select * from test where c1 is null or c1 not in ('AAAAA');
를 실행하면 되긴 하네요..

많은 답변 부탁드립니다. 감사합니다.

by 부쉬맨 [2012.04.25 13:45:58]
not in 시 널은 제외됩니다.

by 뭉게뭉게 [2012.04.25 14:06:59]

http://hermestop.tistory.com/91 에 자세히 나와 있네요.

by 마농 [2012.04.25 14:12:39]

널은 비교나 연산이 불가능합니다.
널에 대한 연산이나 비교는 실패하여 거짓이 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입