> 데이터 베이스 > MySQL 튜토리얼 > Oracle에서 행을 열로 효율적으로 변환하는 방법은 무엇입니까?

Oracle에서 행을 열로 효율적으로 변환하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-04 21:27:40
원래의
453명이 탐색했습니다.

How to Efficiently Transform Rows into Columns in Oracle?

Oracle에서 행을 열로 변환하는 방법

여러 행과 열이 있는 테이블 데이터를 더 읽기 쉬운 열 구조로 변환하는 데 어려움을 겪고 계십니까? Oracle 데이터베이스는 이 작업을 단순화하는 강력한 기술을 제공합니다.

다음과 같은 대출 정보와 문서가 포함된 테이블이 있다고 가정해 보겠습니다.

LOAN NUMBER | DOCUMENT_TYPE | DOCUMENT_ID
------------------------------------------
992452533663 | Voters ID | XPD0355636
992452533663 | Pan card | CHXPS5522D
992452533663 | Drivers licence | DL-0420110141769
로그인 후 복사

이러한 행을 구조화된 열로 변환하려면 다음을 수행합니다. Oracle 10g의 DECODE 함수나 Oracle 11g에 도입된 PIVOT 절을 활용하세요.

DECODE 함수(Oracle 10g)

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 함수를 사용하여 특정 문서 유형에 따라 원하는 열에 값을 할당합니다. 그런 다음 MAX 함수는 각 열에 대해 일치하는 문서 ID를 반환합니다.

PIVOT 절(Oracle 11g)

SELECT *
FROM doc_tab
PIVOT (
  MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence')
);
로그인 후 복사

PIVOT 절은 문서 유형을 열로 정렬하고 해당 문서 ID를

이러한 기술을 활용하면 데이터를 열 중심의 레이아웃으로 효율적으로 재구성할 수 있습니다. 이해하고 추가로 분석합니다.

위 내용은 Oracle에서 행을 열로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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