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

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

by 기서무나구물 2018. 11. 30.

포스팅 목차

    o NANVL

     


    문법

    nanvl::=

     


    목적 

    만약 n2가 NaN이 아니라면, 오라클은 n2를 반환한다. 만약 입력 값 n2가 Nan(숫치가 아닌)인 경우에 대체 값 n1을 반환하도록 오라클에 지시한다. 이 함수는 NaN값을 Null으로 매핑하는데 위해 유용하다.

    NANVL함수는 BINARY_FLOAT 또는 BINARY_DOUBLE 형태의 부동 소수점에 유용하다.

    이 함수는 인수로써 수치형 데이터 형 또는 암묵적으로 수치 데이터형으로 변환 가능한 비수치형 데이터형을 취한다. 오라클은 수치 순위가 가장 높은 인수를 판단하여, 나머지 인수를 그 데이터 형으로 암묵적으로 변환하여 그 데이터형을 반환한다.

     


    관련 함수

    함수명 함수내용
    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인지 여부에 근거하여 쿼리의 반환될 값을 분기하여 처리할 수 있다. 

     


    예제

    TO_BINARY_DOUBLE 로 작성된 float_point_demo 테이블을 이용하여, 테이블에 두 번째 엔트리를 삽입한다.

    Oracle Program
    Insert INTO float_point_demo
      VALUES (0,'NaN','NaN');
    
    SELECT * FROM float_point_demo;

     

    Results
       DEC_NUM BIN_DOUBLE  BIN_FLOAT
    ---------- ---------- ----------
       1234.56 1.235E+003 1.235E+003
             0        Nan        Nan

     


    다음 예제는 수치의 경우에는 bin_float를 반환하고, 그 이외의 경우 0을 반환한다.

    Oracle Program
    SELECT bin_float, NANVL(bin_float,0)
    FROM   float_point_demo;

     

    Results
     BIN_FLOAT NANVL(BIN_FLOAT,0)
    ---------- ------------------
    1.235E+003         1.235E+003
           Nan                  0

     


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

     

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

    댓글