본문 바로가기
programming/Experience

OWNER not IN (null)

by zsgg 2020. 1. 23.

깜짝 놀랐다. 실컷 query 짜고 돌렸는데 null이 안나와서. 만약 대규모 데이터를 조회하는 거였다면 놓칠 수도 있었을 것이다.

#IN과 NOT IN의 함정

In의 함정

hobby in (null, '낚시')

하게 될 경우 null은 결과에 포함되지 않는다. 풀어보면

hobby = null or hobby = '낚시'

인데 null은 '='으로 평가되지 않고 'is null'또는 'is not null'로 평가되기 때문이다. 'hobby = null'은 항상 false이다.

Not In의 함정

hobby not in (null, '낚시')

하게 될 경우 결과로 아무것도 나오지 않는다. in 과 마찬가지로 null 은 '='로 평가할 수 없고 '='로 할경우 항상 false를 리턴하기 때문이다.

#[Oracle] <> != 는 같은 표현식
xml 에서 <> 표현식이 지원 안할땐 != 요렇게 써주자

댓글