[SQL] Null 주의 사항

1. null 값에 정수형 연산을 하게 되면 null이 된다.
null == 12 * 34 * null
- 이것에 대해 실수를 하지 않으려면 정수형 컬럼에 기본값을 주거나, NVL 같은 함수를 사용하여 Null 값을 다른 정수형 값으로 변환을 시켜줘야 한다. 


2. DISTINCT 사용 예외
- DISTINCT 는 사용 방법에 따라 NULL 값 처리 방법이 다르다.

SCOTT 계정의 EMP 테이블을 가지고 테스트를 해보면 다음과 같다.


SELECT DISTINCT comm FROM emp

- null 값도 distinct 되어 결과에 null 값이 포함되어 표시된다.
- 총 데이터 건수 5건


SELECT COUNT(comm) FROM emp

- null 값은 무시되고 결과값 4가 표시된다.


SELECT COUNT(DISTINCT  comm) FROM emp

-  위와 동일하게 null 값은 무시되고 결과값 4가 표시된다.
  


3. Group Function에서의 null 
- 그룹 함수를 이용하여 평균값을 구할때 null 값이 포함되어 있으면 아에 없는 행으로 무시하게 된다.
전체 사용자의 평균 급여를 구하고자 하는데, null 값이 포함된 사람은 무시하게 되어 의미가 없어진다.

- 이 문제는 1번문제와 동일한 문제이다. 기본값을 주던지 NVL 같은 함수로 처리해야 한다.












'Oracle > PL/SQL' 카테고리의 다른 글

[SQL] IN, ANY, ALL  (0) 2011.10.07
[SQL] ALTER TABLE  (0) 2011.09.27
Oracle date format  (2) 2011.05.02
oracle에 date type 으로 넣고 싶은 날짜+시간을 java에서 넣기.  (0) 2011.05.02
DML 을 할 수 있는 FUNCTION 생성하기.  (0) 2010.10.09