[오라클 SQL] 오라클 UNPIVOT 이용하여 컬럼을 로우로 전환(변환)하기
- Database(데이터베이스)/Oracle
- 2019. 12. 7. 01:00
안녕하세요.
오늘은 오라클 UNPIVOT 절을 이용하여 컬럼을 로우로 전환하는 방법에 대해서 설명해 드리려고 합니다.
오라클에서 컬럼을 로우로 전환하는 방법은 여러가지가 있겠지만, 그 중에서 오늘은 UNPIVOT 함수를 이용하여 변환해 보도록 하겠습니다.
먼저 아래 쿼리를 이용하여 SCORE_TBL이라는 임시 테이블을 만들었습니다.
SCORE_TBL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
WITH SCORE_TBL AS ( SELECT '2019' AS YEAR, '중간고사' AS GUBUN, '88' AS KOREAN, '100' AS ENGLISH, '20' AS MATH, '70' SCIENCE, '60' AS SOCIETY FROM DUAL
UNION ALL
SELECT '2019' AS YEAR, '기말고사' AS GUBUN, '88' AS KOREAN, '100' AS ENGLISH, '90' AS MATH, '70' SCIENCE, '60' AS SOCIETY FROM DUAL ) SELECT * FROM SCORE_TBL
|
위의 쿼리를 실행 시켜보시면 아래와 같은 데이터가 출력되는 것을 확인하실 수 있습니다.
그럼 이제 위의 데이터에서 과목 컬럼들을 UNPIVOT 절을 이용하여 로우로 전환해 보도록 하겠습니다.
UNPIVOT 절을 이용하여 컬럼 데이터를 로우로 전환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
WITH SCORE_TBL AS ( SELECT '2019' AS YEAR, '중간고사' AS GUBUN, '88' AS KOREAN, '100' AS ENGLISH, '20' AS MATH, '70' SCIENCE, '60' AS SOCIETY FROM DUAL
UNION ALL
SELECT '2019' AS YEAR, '기말고사' AS GUBUN, '88' AS KOREAN, '100' AS ENGLISH, '90' AS MATH, '70' SCIENCE, '60' AS SOCIETY FROM DUAL ) SELECT YEAR, GUBUN, SUBJECTS, SCORE FROM SCORE_TBL UNPIVOT ( SCORE FOR SUBJECTS IN ( KOREAN AS '국어', ENGLISH AS '영어', MATH AS '수학', SCIENCE AS '과학', SOCIETY AS '사회' ) );
|
실행 결과
위와 같이 컬럼 데이터가 로우데이터로 전환돼서 데이터가 출력되는 모습을 확인하실 수 있습니다.
감사합니다.^^
'Database(데이터베이스) > Oracle' 카테고리의 다른 글
[오라클 PL/SQL] 오라클 임시 테이블 – 세션 GTT란? (0) | 2019.12.10 |
---|---|
[오라클 PL/SQL] 오라클 임시 테이블 – 트랜잭션 GTT란? (0) | 2019.12.09 |
[오라클 SQL] 오라클 PIVOT 절을 이용하여 로우를 컬럼으로 전환(변환)하기 (0) | 2019.12.06 |
[오라클 PL/SQL] PL/SQL 커서(Cursor) FOR문으로 생성하기 (0) | 2019.12.04 |
[오라클 PL/SQL] PL/SQL 명시적 커서(Cursor) 사용 방법 (0) | 2019.12.03 |
이 글을 공유하기