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

[오라클 SQL 함수] PRESENTNNV 함수

by 기서무나구물 2021. 10. 19.

포스팅 목차

     

    PRESENTNNV

     


    문법

     

    presentnnv::=

     


    목적

    PRESENTNNV 함수는 행상호간 계산에 대해 유용하다. PRESENTNNV함수는 단지 SELECT구문의 model_clause에서 이용되고, model rule의 오른쪽에서 사용될수 있다.

    이 함수는 cell_reference가 존재하고 NULL이 아닌 경우, model_clause이 실행되기 전에 expr1을 반환한다. 이 외의 경우에는 expr2를 반환한다.

     


    예제

    다음 예제는 만약 2002년 마우스 패드에 대한 판매액을 가진 행이 존재하고 판매액이 NULL이 아니라면, 그 판매액 값을 반환한다. 만약 행이 존재하나, 판매액이 NULL이라면, 그 때 판매액 값은 10으로 설정된다. 만약 행이 존재하지 않는다면, 행은 10으로 설정한 판매액을 생성한다.

    Oracle Program
    SELECT country, prod, year, s
      FROM sales_view
      MODEL
        PARTITION BY (country)
        DIMENSION BY (prod, year)
        MEASURES (sale s)
        IGNORE NAV
        UNIQUE DIMENSION
        RULES UPSERT SEQUENTIAL ORDER
        (
          s['Mouse Pad', 2002] = 
            PRESENTNNV(s['Mouse Pad', 2002], s['Mouse Pad', 2002], 10)
        )
      ORDER BY country, prod, year;

     

    Results
    COUNTRY       PROD                                         YEAR           S
    ----------    -----------------------------------      --------   ---------
    France        Mouse Pad                                    1998     2509.42
    France        Mouse Pad                                    1999     3678.69
    France        Mouse Pad                                    2000     3000.72
    France        Mouse Pad                                    2001     3269.09
    France        Mouse Pad                                    2002          10
    France        Standard Mouse                               1998     2390.83
    France        Standard Mouse                               1999     2280.45
    France        Standard Mouse                               2000     1274.31
    France        Standard Mouse                               2001     2164.54
    Germany       Mouse Pad                                    1998     5827.87
    Germany       Mouse Pad                                    1999     8346.44
    Germany       Mouse Pad                                    2000     7375.46
    Germany       Mouse Pad                                    2001     9535.08
    Germany       Mouse Pad                                    2002          10
    Germany       Standard Mouse                               1998     7116.11
    Germany       Standard Mouse                               1999     6263.14
    Germany       Standard Mouse                               2000     2637.31
    Germany       Standard Mouse                               2001     6456.13
    
    18 rows selected.

     

    이 예제는 뷰 sales_view가 필요한다. 이 뷰 생성에 대하여는 Oracle 도움말 참조. (모델 구분)

     


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

     

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

    댓글