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

[오라클 SQL 함수] POWERMULTISET_BY_CARDINALITY 함수

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

포스팅 목차

     

    POWERMULTISET_BY_CARDINALITY

     


    문법

     

    powermultiset_by_cardnlty::=

     


    목적

    POWERMULTISET_BY_CARDINALITY함수는 중첩 테이블과 cardinality(주어진 수학적 집합에서 요소들의 개수)를 인수로 입력하여서, 지정한 카디나리트의 중첩 테이블의 모든 비공백 부분집합(submultisets이라고 불리는)을 소유하는 중첩 테이블의 중첩 테이블을 반환한다.

    • expr은 중첩테이블을 평가하는 임의의 식을 지정할 수 있다.
    • cardinality는 임의의 양의 정수를 지정할 수 있다.
    • 만약 expr이 Null인경우, 오라클 데이터 베이스는 NULL을 반환한다.
    • 만약 expr이 공백인 중첩 테이블을 지정한다면, 오라클은 에러를 반환한다.
    • 중첩 테이블의 요소 형태는 비교가능하다. 비 스칼라 형태의 비교 가능성은  "Comparison Conditions " 참조. 주 의 : 이 함수는 PL/SQL에서 지원되지 않는다.

    예제

    우선, 모든 중첩 테이블에서 요소를 복제하여, 중첩 테이블의 행의 카디나리티를 2로 증가한다.

    Oracle Program
    UPDATE customers_demo
      SET cust_address_ntab = cust_address_ntab MULTISET UNION cust_address_ntab;

     

    POWERMULTISET_BY_CARDINALITY함수를 이용한 customers_demo 테이블에서 중첩 테이블 열 cust_address_ntab을 선택한다.

     


    Oracle Program
    SELECT CAST(POWERMULTISET_BY_CARDINALITY(cust_address_ntab, 2) AS cust_address_tab_tab_typ)
    FROM   customers_demo;

     

    Results
    CAST(POWERMULTISET_BY_CARDINALITY(CUST_ADDRESS_NTAB,2) AS CUST_ADDRESS_TAB_TAB_TYP)
      (STREET_ADDRESS, POSTAL_CODE, CITY, STATE_PROVINCE, COUNTRY_ID)
    ----------------------------------------------------------------------------------------
    CUST_ADDRESS_TAB_TAB_TYP(CUST_ADDRESS_TAB_TYP
      (CUST_ADDRESS_TYP('514 W Superior St', '46901', 'Kokomo', 'IN', 'US'), 
       CUST_ADDRESS_TYP('514 W Superior St', '46901', 'Kokomo', 'IN', 'US')))
    CUST_ADDRESS_TAB_TAB_TYP(CUST_ADDRESS_TAB_TYP
      (CUST_ADDRESS_TYP('2515 Bloyd Ave', '46218', 'Indianapolis', 'IN', 'US'), 
       CUST_ADDRESS_TYP('2515 Bloyd Ave', '46218', 'Indianapolis', 'IN', 'US')))
    CUST_ADDRESS_TAB_TAB_TYP(CUST_ADDRESS_TAB_TYP
      (CUST_ADDRESS_TYP('8768 N State Rd 37', '47404', 'Bloomington', 'IN', 'US'), 
       CUST_ADDRESS_TYP('8768 N State Rd 37', '47404', 'Bloomington', 'IN', 'US')))

     

    이전 예제는 customers_demo 테이블과 데이터를 포함한 중첩 테이블 열이 필요하다. 이 표와 중첩 테이블 열을 생성하기 위해서"Multiset Operators " 참조.

     


    엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크

     

    SAS 함수(SAS Function) 리스트 링크
    반응형

    댓글