본문 바로가기
오라클 게시판/오라클 함수

【오라클(Oracle) SQL 함수】 NULLIF 함수

by 기서무나구물 2019. 1. 3.

포스팅 목차

    o NULLIF

     


    문법

     

    nullif::=

     


    목적  

    NULLIF는 expr1과 expr2를 비교하는 비교 함수이다. 만약 expr1과 expr2가 같으면 NULL값을 반환하고, expr1과 expr2가 서로 동일하지 않으면 expr1을 반환한다. expr1에 대하여는 NULL을 지정할 수 없다.

    만약 양쪽 인수가 수치형이라면, 오라클 데이터 베이스는 더 높은 수치 순위를 가지는 인수를 판단하여, 나머지 인수를 그 데이터형으로 암묵적으로 변환하여 반환한다. 만약 인수가 수치가 아니라면, 두 인수는 같은 데이터형이어야 하며, 그렇지 않은 경우 에러가 발생한다.

    NULLIF함수는 다음의 CASE문장과 논리적으로 동등하다.

    CASE WHEN expr1 = expr 2 THEN NULL ELSE expr1 END
    

     


    참고

     


    관련 함수

    함수명 함수내용
    COALESCE 나열된 인수의 값을 순차적으로 체크하여 NULL이 아닌 첫 번째 인수를 반환한다.
    LNNVL 조건문의 한쪽 또는 양쪽의 피연산자가 NULL이 존재하는 관측치를 포함하여 조건문을 평가하기 위한 방법을 제공한다.
    NANVL
    만약 n2가 NaN이 아니라면, 오라클은 n2를 반환한다. 만약 입력 값 n2가 Nan(숫치가 아닌)인 경우에 대체 값 n1을 반환하도록 오라클에 지시한다.
    NULLIF
    expr1과 expr2를 비교하는 비교 함수이다. 만약 expr1과 expr2가 같으면 NULL값을 반환하고, expr1과 expr2가 서로 동일하지 않으면 expr1을 반환한다.
    NVL 쿼리의 결과에서 NULL(공백으로 반환) 값을 치환하는 함수이다. 만약 expr1이 NULL이면 expr2를 반환하고, 만약 expr1이 NULL이 아니면 expr1을 반환한다.
    NVL2 NVL2함수를 사용하면, 지정한 표현이 NULL인지 여부에 근거하여 쿼리의 반환될 값을 분기하여 처리할 수 있다. 

     


    예제

    다음 예제는 샘플 스키마 HR에서 고용된 이후 직종이 변경된 사람을 선택하는데, 현재 job_id와 job_history의 job_id를 비교하여 확인한다.

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

     

    Results
    LAST_NAME                 Old Job ID
    ------------------------- ----------
    De Haan                   AD_VP
    Hartstein                 MK_MAN
    Kaufling                  ST_MAN
    Kochhar                   AD_VP
    Kochhar                   AD_VP
    Raphaely                  PU_MAN
    Taylor                    SA_REP
    Taylor
    Whalen                    AD_ASST
    Whalen

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글