1. null 값에 정수형 연산을 하게 되면 null이 된다.
null == 12 * 34 * null
- 이것에 대해 실수를 하지 않으려면 정수형 컬럼에 기본값을 주거나, NVL 같은 함수를 사용하여 Null 값을 다른 정수형 값으로 변환을 시켜줘야 한다.
2. DISTINCT 사용 예외
- DISTINCT 는 사용 방법에 따라 NULL 값 처리 방법이 다르다.
SCOTT 계정의 EMP 테이블을 가지고 테스트를 해보면 다음과 같다.
- null 값도 distinct 되어 결과에 null 값이 포함되어 표시된다.
- 총 데이터 건수 5건
- null 값은 무시되고 결과값 4가 표시된다.
- 위와 동일하게 null 값은 무시되고 결과값 4가 표시된다.
3. Group Function에서의 null
- 그룹 함수를 이용하여 평균값을 구할때 null 값이 포함되어 있으면 아에 없는 행으로 무시하게 된다.
전체 사용자의 평균 급여를 구하고자 하는데, null 값이 포함된 사람은 무시하게 되어 의미가 없어진다.
- 이 문제는 1번문제와 동일한 문제이다. 기본값을 주던지 NVL 같은 함수로 처리해야 한다.
$
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 |