> 데이터 베이스 > MySQL 튜토리얼 > Oracle에서 행을 열로 동적으로 피벗하려면 어떻게 해야 합니까?

Oracle에서 행을 열로 동적으로 피벗하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2025-01-06 14:14:46
원래의
579명이 탐색했습니다.

How Can I Dynamically Pivot Rows into Columns in Oracle?

Oracle의 동적 피벗: 행을 열로 변환

이 문서에서는 Oracle에서 행을 열로 동적으로 피벗하는 문제에 대해 설명합니다. 이 기술을 사용하면 키와 값이 행에 저장된 데이터를 키를 나타내는 열과 값을 나타내는 행이 있는 표 형식으로 변환할 수 있습니다.

문제

ID가 기본 키, 키(K) 및 값(V)인 테이블이 주어지면 목표는 원본 테이블에 있는 고유 키 수만큼 열이 있는 피벗 테이블을 만드는 것입니다. 쿼리는 동적으로 발생할 수 있는 알 수 없는 열 이름을 처리할 수 있어야 합니다.

Oracle 11g 솔루션

Oracle 11g는 이러한 요구 사항을 충족하는 PIVOT 작업을 제공합니다. 다음 쿼리는 그 사용법을 보여줍니다.

select * from (select id, k, v from _kv) pivot(max(v) for k in ('name', 'age', 'gender', 'status'))
로그인 후 복사

Oracle XML 피벗 옵션(Oracle 11g)

열 제목을 알 수 없는 시나리오의 경우 Oracle은 피벗 XML을 제공합니다. 옵션(쿼리에서 볼 수 있음) 아래:

select * from (select id, k, v from _kv) pivot xml (max(v) for k in (any))
로그인 후 복사

편집:

댓글에서 지적한 대로 값을 집계하고 IN 절을 포함하도록 쿼리를 수정했습니다. 그러나 IN 절에 값을 지정하면 쿼리의 동적 특성이 저하됩니다.

위 내용은 Oracle에서 행을 열로 동적으로 피벗하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿