[Oracle] 오라클 NULL 사용시 주의사항 정리
- 데이터베이스/오라클
- 2020. 5. 6.
오라클에서 쿼리문을 작성할 때 NULL을 제대로 이해하지 않으면 원하는 결과가 출력되지 않을 때가 많다. 다른 DB나 언어와 다른 부분이 있으니 아래의 예제를 보면서 오라클에서 NULL 사용법을 조금이라도 이해하면 좋을 것이다.
오라클에서 빈 문자열( '' )은 NULL로 인식하기 때문에, 컬럼의 값이 빈 문자열이면 NULL과 동일한 조건으로 쿼리를 작성해야 한다. |
[ 잘못된 사용 ]
① job = NULL (NULL은 비교 연산자를 사용할 수 없다) |
[ 올바른 사용 ]
① job IS NULL (NULL을 조건으로 사용할 때는 IS NULL을 사용한다) |
NULL 사용쿼리 예제
[ NULL 인 값을 찾을 때 ]
[ 문자열 비교 연산자 사용할 때 ]
- job 컬럼을 NVL로 치환하지 않으면 job 컬럼이 NULL인 SCOTT는 조회되지 않는다.
- 같지 않다( !=, <> ) 연자산자를 사용시 NVL 함수로 치환하지 않고 LNNVL 함수나 OR을 사용하여 같은 결과를 얻을수 있다.
- LNNVL( job = 'MANAGER' )
- ( job != 'MANAGER' OR job IS NULL )
[ IN 을 사용할 때 ]
[ 수치형 컬럼에 NULL이 존재할 때 ]
- 수치형 컬럼에 NULL이 존재할 경우 NVL로 치환하지 않으면 결과는 NULL로 출력 된다.
[ DECODE 함수를 사용할 때 ]
[ CASE 문을 사용할 때 ]