본문 바로가기

[오라클 레퍼런스 함수] PRESENTV - model_clause 실행 전에 값의 존재 여부에 따라 값 할당

by ㅇㅍㅍ 2023. 8. 14.
[오라클 레퍼런스 함수] PRESENTV - model_clause 실행 전에 값의 존재 여부에 따라 값 할당
728x90

 

PRESENTV

 

구문

PRESENTV(cell_reference, expr1, expr2)

 

목적

PRESENTV 함수는 SELECT 문의 model_clause 내에서만 사용할 수 있으며, 그리고 모델 규칙의 오른쪽에만 사용할 수 있습니다. 이 함수는 model_clause의 실행 전에 cell_reference가 존재할 경우 expr1을 반환합니다. 그렇지 않으면 expr2를 반환합니다.

 

참고:

 

예제

다음 예제에서는 2000년에 Mouse Pad의 판매 내역이 있는 경우, 2001년 Mouse Pad의 판매값은 2000년 Mouse Pad의 판매값으로 설정됩니다. 해당 행이 없는 경우, 2001년 Mouse Pad의 판매값이 0으로 설정된 행이 생성됩니다.

SELECT country, prod, year, s
  FROM sales_view_ref
  MODEL
    PARTITION BY (country)
    DIMENSION BY (prod, year)
    MEASURES (sale s)
    IGNORE NAV
    UNIQUE DIMENSION
    RULES UPSERT SEQUENTIAL ORDER
    (
      s['Mouse Pad', 2001] =
        PRESENTV(s['Mouse Pad', 2000], s['Mouse Pad', 2000], 0)
    )
  ORDER BY country, prod, year;

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     3000.72
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     7375.46
Germany       Standard Mouse                               1998     7116.11
Germany       Standard Mouse                               1999     6263.14
Germany       Standard Mouse                               2000     2637.31
Germany       Standard Mouse                               2001     6456.13

16 rows selected.

 

앞의 예제는 sales_view_ref 뷰가 필요합니다. 이 뷰를 생성하려면 "The MODEL clause: Examples"를 참조하세요.

 


출처: 오라클 레퍼런스

원문 링크: Oracle PRESENTV 함수 문서

 

반응형

댓글