Where The Streets Have No Name

NULLIF및 COALESCE 함수 본문

Developement/DataBase

NULLIF및 COALESCE 함수

highheat 2006. 4. 13. 16:03
NULLIF 함수

NULLIF 함수의 경우 첫 번째 입력 인자와 두 번째 입력 인자가 같은 경우에는 NULL을 반환하고, 그렇지 않을 경우에는 첫 번째 입력 인자의 값을 반환한다. 예를 들어, EMP 테이블의 사원 중에 Sal 열의 값이 5000인 사람에 대해 NULLIF 함수를 적용하는 SQL 문은 다음과 같다.  
SQL> SELECT ename, sal
2 FROM emp
3 WHERE NULLIF(sal, 5000) IS NULL;

만약 NULLIF 함수를 CASE 문으로 나타낸다면 다음과 같다.

CASE  
WHEN expression1 = expression2 THEN NULL
ELSE expression1
END CASE




---------------------------------
COALESCE 함수

COALESCE 함수는 Oracle의 NVL 함수를 일반화한 것이다. 즉, 첫 번째 입력 인자가 Null이 아닐 경우에는 첫 번째 입력 인자를 반환하고, 아닐 경우에는 두 번째 표현식에 대해서 평가를 계속하게 된다. 예를 들어, EMP 테이블에서 COMM 열의 값이 Null인지 검사하는 SQL 문은 다음과 같다.  

SQL> SELECT ename, COALESCE(comm,NULL)
2 FROM emp;

NULLIF 함수와 유사하게 CASE 문으로 나타내면 다음과 같다.  
CASE
WHEN expression1 IS NOT NULL THEN expression1
ELSE expression2
END CASE;

NVL 함수에 비해 COALESCE 함수의 장점은 여러 대체 값을 취할 수 있다는 것이다. 예를 들어, 첫 번째 입력 인자가 Null일 경우에는 나머지 표현식에 대해서 COALESCE를 계속 적용하는 것이 가능하다.