Oracle 데이터베이스는 데이터를 행에서 열로 재구성하기 위한 다양한 기술(피버팅이라고 알려진 프로세스)을 제공합니다. 이러한 변환은 데이터가 좁은 형식으로 구성되어 더 넓은 보기로 표시되어야 할 때 필요합니다.
행-열 변환을 수행하기 위해 Oracle은 두 가지 방법을 제공합니다.
이전 버전의 Oracle(10g)에서는 DECODE 기능을 사용하여 피벗을 수행할 수 있습니다. 다음 테이블 구조를 고려하십시오.
LOAN NUMBER | DOCUMENT_TYPE | DOCUMENT_ID |
---|---|---|
992452533663 | Voters ID | XPD0355636 |
992452533663 | Pan card | CHXPS5522D |
992452533663 | Drivers licence | DL-0420110141769 |
이 데이터를 피벗하려면 다음과 같이 DECODE 함수를 활용할 수 있습니다.
SELECT loan_number, MAX(DECODE(document_type, 'Voters ID', document_id)) AS voters_id, MAX(DECODE(document_type, 'Pan card', document_id)) AS pan_card, MAX(DECODE(document_type, 'Drivers licence', document_id)) AS drivers_licence FROM doc_tab GROUP BY loan_number ORDER BY loan_number;
이 쿼리는 데이터를 대출 번호별로 그룹화하고 중첩 DECODE를 사용합니다. 특정 문서 유형에 문서 ID를 할당하는 기능입니다. MAX 함수는 각 대출 문서 조합에 대해 원하는 단일 값을 반환합니다.
Oracle 11g에서는 행-열 변환을 단순화하기 위해 전용 PIVOT 절을 도입했습니다. 다음 쿼리는 그 사용법을 보여줍니다.
SELECT * FROM doc_tab PIVOT ( MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence') );
이 쿼리의 PIVOT 절은 변환된 결과에서 생성될 열을 명시적으로 정의합니다. 지정된 문서 유형을 기준으로 데이터를 자동으로 그룹화하고 일치하는 문서 ID를 결합합니다.
Oracle의 피벗 기술에 대한 자세한 내용은 아래 리소스를 참조하세요.
위 내용은 Oracle에서 행을 열로 피벗하는 방법: DECODE와 PIVOT?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!