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

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

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

포스팅 목차

    o LNNVL

     


    문법

     

    lnnvl::=

     


    목적 

    LNNVL함수는 조건문의 한쪽 또는 양쪽의 피연산자가 NULL이 존재하는 관측치를 포함하여 조건문을 평가하기 위한 방법을 제공한다. 이 함수는 WHERE구문에서만 사용 가능하다.

    이 함수는 조건문을 인수로 가지고, 만약 조건문이 FALSE이거나 UNKNOWN이라면 TRUE를 반환하고, 조건문이 TRUE라면 FALSE를 반환한다. LNNVL함수는 스칼라 표현이 사용될 수 있는 곳이면 이용할 수 있다. IS [NOT] NULL, AND, OR, OR조건문이 있는 문장에서는 유효하지 않으나, 발생 가능한 NULL값들을 처리하기 위해 사용 가능하다.

    오라클 데이터 베이스는 LNNVL함수를 처리하기 위하여 내부적으로 NOT IN 조건문을 NOT EXISTS 조건문으로 변경하여 처리한다. 이 경우에, EXPLAIN PLAN으로부터 출력에 의해서, PLAN 테이블 출력에서 이 처리 방식을 확인할 수 있다. 조건문은 임의의 스칼라 값을 평가할 수 있지만, AND, OR, BETWEEN을 포함한 복합 조건문을 사용할 수 없다.

    이 테이블은 a=2이고 b는 NULL인 경우에 LNNVL함수가 반환하는 값을 보여준다.

    조   참 / 거짓 LNNVL 반환 값
    a = 1 FALSE TRUE
    a = 2 TRUE FALSE
    IS NULL FALSE TRUE
    b = 1 UNKNOWN TRUE
    IS NULL TRUE FALSE
    a = b UNKNOWN TRUE

     


    참고

     


    관련 함수

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

     


    예제

    수수료를 받지 않는 종업원을 포함하여, 20% 미만의 수수료를 받는 종업원을 알기를 원한다고 가정하자. 다음 쿼리는 단지 20% 미만의 수수료를 받는 종업원을 반환한다.

    Oracle Program
    SELECT COUNT(*) 
    FROM   employees 
    WHERE  commission_pct < .2;

     

    Results
      COUNT(*)
    ----------
            11

     


    수수료를 받지 않는 72명을 포함하기 위해서, 다음과 같이 LNNVL함수를 이용하여 쿼리를 변경할 수 있다.(수수료 NULL+수수료 20% 미만)

    Oracle Program
    SELECT COUNT(*) 
    FROM   employees
    WHERE  LNNVL(commission_pct >= .2);

     

    Results
      COUNT(*)
    ----------
            83

     


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

     

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

    댓글