!=, <>, IS NOT 차이
의미상으로는 같지 않다를 나타내어 모두 동일한 결과를 반환할 것이라고 생각할 수 있다.
하지만,,
!=, <>, IS NOT에는 타입 비교 대상의 범위 차이가 있다.
!= 와 <> 연산자는 동일한 기능을 하며 원시 타입(Primitive Type)에 대해서만 동작하고,
IS NOT NULL은 모든 타입에 대해 동작한다.
!=, <>, IS NOT NULL 예시
!= NULL을 사용한 경우
SELECT delv_msg FROM table WHERE delv_msg != NULL;
!= NULL을 사용한 경우에는 출력한 레코드가 없는 것을 확인할 수 있다. <>와는 동일한 기능을 하기 때문에 <>는 넘어가겠다.
IS NOT NULL을 사용한 경우
SELECT delv_msg FROM table WHERE delv_msg IS NOT NULL;
IS NOT NULL을 사용한 경우에는 delv_msg 컬럼이 NULL인 아닌 레코드들을 반환한 것을 확인할 수 있다.
결론은 NULL이 아닌지를 비교하려면 무조건 IS NOT NULL 조건식을 사용해야 한다!
그리고 NULL이 아닌 값(varchar, int 등)을 비교하려면 !=, <>를 사용하자.
'DB > DB 문법' 카테고리의 다른 글
뷰(View) (0) | 2023.05.23 |
---|---|
TCL(Transaction Control Language) (0) | 2023.05.19 |
쿼리 실행 순서 (1) | 2023.05.18 |
조건식(Conditional Expressons) (0) | 2023.05.18 |
쿼리 조회 시 *(asterisk)는 정말 지양해야 할까? (0) | 2023.05.18 |