본문 바로가기

[오라클 레퍼런스 함수] NULLIF - 두 값이 동일하면 null 반환

by ㅇㅍㅍ 2023. 8. 11.
[오라클 레퍼런스 함수] NULLIF - 두 값이 동일하면 null 반환
728x90

 

NULLIF

 

구문

NULLIF(expr1, expr2)

 

목적

NULLIF 함수는 expr1expr2를 비교합니다. 두 값이 동일하면 함수는 null을 반환합니다. 두 값이 동일하지 않으면 함수는 expr1을 반환합니다. expr1에는 리터럴 NULL을 지정할 수 없습니다.

두 인수 모두 숫자 데이터 유형인 경우 Oracle Database는 높은 숫자 우선순위를 가진 인수를 결정하고 다른 인수를 해당 데이터 유형으로 암시적으로 변환하여 해당 데이터 유형을 반환합니다. 인수가 숫자가 아닌 경우, 데이터 유형이 동일해야 하며 그렇지 않으면 Oracle은 오류를 반환합니다.

NULLIF 함수는 논리적으로 다음 CASE 식과 동등합니다:

 

CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

 

참고:

  • "CASE Expressions"
  • Oracle Database Globalization Support Guide의 부록 C는 NULLIF 함수가 expr1에서 가져온 문자를 expr2에서 가져온 문자와 비교하는 데 사용하는 정렬 결정 규칙(collation determination rules) 및 문자 값인 경우 이 함수의 반환 값에 할당되는 정렬을 정의하는 정렬 파생 규칙(collation derivation rules)에 대한 정보를 제공합니다.

 

예제

다음 예제는 샘플 스키마 hr에서 직원들 중에 고용된 이후에 직무를 변경한 사람들을 선택합니다. 이는 employees 테이블의 현재 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";

LAST_NAME                 Old Job ID
------------------------- ----------
De Haan                   IT_PROG
Hartstein                 MK_REP
Kaufling                  ST_CLERK
Kochhar                   AC_ACCOUNT
Kochhar                   AC_MGR
Raphaely                  ST_CLERK
Taylor                    SA_MAN
Taylor
Whalen                    AC_ACCOUNT
Whalen

 


출처: 오라클 레퍼런스

원문 링크: Oracle NULLIF 함수 문서

 

반응형

댓글