앞서 일정 갯수의 ROW 생성하기를 하여서 고정된 행을 기준으로 값을 표현 해보았습니다
테이블 "한글" | 테이블 "영문" | |
1 | ㄱ | A |
2 | ㄴ | B |
3 | ㄷ | C |
4 |
그렇다면 반대로 행을 열로 바꿀 수 있을까요? 정답은 일단 “가능하다” 입니다
여러 방법이 있겠지만 PIVOT함수를 사용하여 아래와 같이 조회 해보도록 하겠습니다
1 | 2 | 3 | 4 | |
테이블 "영문" | A | B | C |
PIVOT 함수
데이터를 변환하는 함수중 하나로 행 데이터를 열 데이터로 변환하여 집계결과를 보고서 형태로 출력할 때 주로 사용합니다. Pivot 함수의 기본적 문법은 다음과 같습니다
SELECT pivot 적용하지 않을 열들,
변환하고자 하는 열
FROM 테이블
PIVOT (
변환된 열들에 대한 집계 함수(sum,avg,max,min 등)
FOR 변환하고자 하는 열을 기준으로 삼는 열
IN ( 변환하고자 하는 열의 값들을 쉼표(',')로 구분 )
)
위 테이블의 결과값을 Pivot함수를 사용하여 표현하면 다음과 같습니다
SELECT *
FROM (
SELECT T1.SEQ, T2.SEQ_VALUE
FROM
(SELECT LEVEL AS SEQ
FROM DUAL
CONNECT BY LEVEL <= 5) T1,
(SELECT LEVEL AS SEQ, CHR(ASCII('A') - 1 + ROWNUM) AS SEQ_VALUE
FROM DUAL
CONNECT BY LEVEL <= 3) T2
WHERE T1.SEQ = T2.SEQ(+)
ORDER BY T1.SEQ )
PIVOT (
MAX(SEQ_VALUE) FOR SEQ IN ( 1,2,3,4)
)
'너알나알 > 오라클[Oracle]' 카테고리의 다른 글
[오라클]사용자 테이블의 건수 조회 (0) | 2024.03.21 |
---|---|
[오라클]CONNECT BY와 LEVEL 사용(메뉴트리) (0) | 2024.03.21 |
[오라클]일정 갯수의 ROW 생성 (0) | 2024.03.20 |
[오라클]1개의 ROW값을 N개의 ROW로 조회(CSV DATA) (0) | 2024.03.20 |
[오라클]오라클 데이터베이스 버전확인 (0) | 2024.03.20 |
댓글