본문 바로가기

DB

쿼리 조건절 유의점

반응형

어찌보면 당연하지만 가끔씩 깜빡하는게 하나있다.

 

간단한 예시를 하나 들자면

난 t_main 테이블의 f1 필드에 test 라는 데이터를 제외한 모든 데이터를 불러오려고 한다. 아래와 같이 쿼리를 짰다.

select * from t_main where f1 != 'test';

얼핏보면 문제가 없어 보이지만 저렇게 하게되면 f1필드의 데이터가 test가 아님에도 불구하고 검색되지 않는 것들이 발견된다.

바로 f1이 null 인 데이터들은 결과로 나오지않는다... 이걸 주의해서

select * from t_main WHERE f1 IS NULL OR f1 != 'test';

or null 처리를 하거나 nvl 처리를 해주자(가급적 or 처리가 좋다)

반응형

'DB' 카테고리의 다른 글

쿼리 속도차이  (0) 2024.03.22
EXISTS, IN 차이점  (0) 2024.03.22