All thing of the world!

Oracle NULLIF 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle NULLIF 설명 : 오라클 함수

WorldSeeker 2021. 3. 30. 21:17

1. 함수의 목적

   Oracle NULLIF는 expr1 파라미터와 expr2 파라미터가 같으면 null을 반환하고, 다르면 expr1을 반환한다.
  (CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END 동일)


2. 샘플을 통한 개념 퀵뷰

employees 테이블의 job_id와 job_history 테이블의 job_id가 다르면 job_history테이블의  job_id를 표시한다.

SELECT e.last_name, NULLIF(j.job_id, e.job_id) "Old Job ID"
FROM employees e, job_history j
WHERE e.employee_id = j.employee_id
ORDER BY last_name, "Old Job ID";


3. 사용방법   


4. 함수 PARAMETER 설명

[expr1][expr2]
비교할 두 대상을 expr1과 expr2에 각각 입력한다.
expr1에는 null을 입력할 수 없다.


5. 다양한 샘플표현

example1) expr1에 null을 입력하면 에러가 난다.

SELECT NULLIF(NULL,'TEST')
FROM DUAL;

ORA-00932: 일관성 없는 데이터 유형: -이(가) 필요하지만 CHAR임
00932. 00000 -  "inconsistent datatypes: expected %s got %s"
*Cause:   
*Action:
1행, 15열에서 오류 발생


example2) expr2에 null을 입력하면 에러없이 정상 출력된다.

SELECT NULLIF('TEST',NULL)
FROM DUAL;

NULLIF('
--------
TEST


example3) expr1과 expr2에 다른 데이터 타입을 넣으면 에러가 발생한다.

SELECT NULLIF('123',123)
FROM DUAL;

ORA-00932: 일관성 없는 데이터 유형: CHAR이(가) 필요하지만 NUMBER임
00932. 00000 -  "inconsistent datatypes: expected %s got %s"
*Cause:   
*Action:
3행, 21열에서 오류 발생

 

Comments