이를 피벗 또는 행과 열을 변환하거나 열과 행을 변환하는 것을 호출합니다. SQL에서 몇 가지 방법으로 수행할 수 있으며 가장 쉬운 방법은 Oracle PIVOT 키워드를 사용하는 것입니다. 이제 Oracle PIVOT 열 이름이 1_SALES_TOTAL, 2_SALES_TOTAL 등으로 표시됩니다. 이것은 _ 의해 결정되었습니다. 1_SALES_TOTAL의 첫 번째 열은 customer_id 1에 대한 sales_total 값입니다. 이는 오라클이 피벗 절에 없는 모든 열에 대해 암시적 그룹을 추가하기 때문입니다. 이를 방지하려면 결과에서 원하는 열만 선택하는 인라인 보기를 사용합니다: CUST_SALES 테이블의 PRODUCT_ID 열은 아래 쿼리에서 피벗되었습니다. 이제 피벗 연산자의 아름다움과 지능을 관찰; 남은 열(예: CUSTOMER_ID 및 MONTH)의 위치를 유지하고 피벗 된 열에 따라 판매 데이터의 서식을 지정합니다. 또한 PRODUCT_ID는 더 이상 열이 아니라 Prod A, Prod B와 같은 고유한 값이며 생성된 계획은 해시 그룹 BY 함수에서 SQL 쿼리의 피벗 별 최적화를 보여 주며 있습니다. 이제 FOR 절에 두 열을 지정했습니다. 이제 각 IN 기준이 괄호에 포함되었으며, 이 기준은 customer_id 및 prod_category(예: 1, `가구`)에 대한 값을 지정합니다.

이 예제에서는 다른 레코드를 많이 제외했습니다. 값 목록 대신 레코드를 가져오기 위해 하위 쿼리를 사용해야 합니다. 이 경우 하위 쿼리의 결과는 열에서 피벗에서 제목으로의 값을 결정하는 데 사용됩니다. 이러한 값은 테이블 결과를 교차하기 위해 제목으로 피벗하기 위해 열 2에 대한 값 목록일 뿐입니다. 이제 메달 테이블이 생겼습니다. 하지만 만약 당신이 나 같은 진정한 데이터 괴짜 총에 다른 것 들을 포함 하 고 싶을 거 야. 예: 피벗 및 피벗 해제 작업에 대한 자세한 내용은 Oracle 데이터베이스 11g SQL 언어 참조를 참조하십시오. 여기서 UNPIVOT_CLAUSE는 집계된 열이 아니라 피벗되지 않은 열의 값을 수용하기 위해 쿼리에 나타나는 임의의 열 이름입니다. UNPIVOT_FOR_CLAUSE는 피벗되지 않은 열 값을 보유하는 임의의 열 이름이기도 합니다.

UNPIVOT_IN_CLAUSE는 피벗되지 않을 열의 고유한 값을 정의합니다. [열(S)]에서 [테이블 이름]에서 [XML](피벗_절피벗_for_clause_in_절)where [조건][/상자]에서 피벗 연산자의 힘을 보여줍니다.

오라클 pivot 예제