728x90
NULLIF
구문
NULLIF(expr1, expr2)
목적
NULLIF 함수는 expr1과 expr2를 비교합니다. 두 값이 동일하면 함수는 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 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] NUMTOYMINTERVAL - 숫자를 INTERVAL로 변환 (예) n년, n개월 (0) | 2023.08.11 |
---|---|
[오라클 레퍼런스 함수] NUMTODSINTERVAL - 숫자를 INTERVAL로 변환 (예) n일, n시간, n분, n초 (0) | 2023.08.11 |
[오라클 레퍼런스 함수] NTILE - 순서대로 버킷 번호 할당 (지정한 버킷 수로) (0) | 2023.08.11 |
[오라클 레퍼런스 함수] NTH_VALUE - 윈도우(window) 내 n번째 값 반환 (0) | 2023.08.11 |
[오라클 레퍼런스 함수] NLSSORT - 정렬 키(collation key) 반환 (0) | 2023.08.10 |
댓글