Oracle에서는 unpivot() 함수를 사용하여 세로 테이블을 가로 테이블로 변환할 수 있습니다. 이 함수는 행의 열 필드를 고유 값에 따라 여러 행의 데이터로 변환하는 데 사용됩니다. 구문은 "데이터 세트 unpivot((열 이름)의 사용자 정의 열 이름에 대한 열 값)에서 필드 선택"입니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
Oracle 열 변환은 행의 고유 값에 따라 행의 열 필드를 여러 행의 데이터로 변환하는 것입니다.
학생 성적표의 기본 데이터는 한 학생의 과목 성적이 하나의 기록에 해당한다는 것입니다. 그런 다음 행을 열로 변환하고 각 열(수학, 영어, 중국어)의 학생 점수에 해당하는 레코드로 변환했습니다. 그래서 이번 글에서는 이전에 변환한 학생 점수 테이블(백업 테이블 Score_copy)을 다시 열과 행으로 변환하여 원본 데이터로 변환해 보도록 하겠습니다. 사례 데이터는 다음과 같습니다.
그럼 컬럼 전환을 어떻게 구현하나요? 일반적으로 사용되는 두 가지 방법을 소개합니다.
1. 스플라이싱에 Union All을 사용하면 해당 열을 행 레코드로 완벽하게 변환할 수 있습니다.
select t.stuname, '英语' as coursename ,t.英语 as score from SCORE_COPY t union all select t.stuname, '数学' as coursename ,t.数学 as score from SCORE_COPY t union all select t.stuname, '语文' as coursename ,t.语文 as score from SCORE_COPY t
결과는 다음과 같습니다. 2. Oracle을 자동으로 사용합니다. 열 대 행 함수 unpivot도 이 문제를 완벽하게 해결할 수 있습니다. 구체적인 구문 구조는 다음과 같습니다.
select 字段 from 数据集 unpivot(自定义列名/*列的值*/ for 自定义列名 in(列名))
구현 코드는 다음과 같습니다.
select stuname, coursename ,score from score_copy t unpivot (score for coursename in (英语,数学,语文))
추천 튜토리얼: "
Oracle Video Tutorial"
위 내용은 Oracle 수직 테이블을 수평 테이블로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!