① UNION ALL을 이용한 방법

    컬럼을 로우로 변환하는 가장 일반적인 방법은 다음과 같이 UNION ALL을 사용하는 것이다.

    입력

        SELECT YEARS, GUBUN, '국어' AS SUBJECT, KOREAN AS SCORE
          FROM ch14_score_col_table
         UNION ALL
        SELECT YEARS, GUBUN, '영어' AS SUBJECT, ENGLISH AS SCORE
          FROM ch14_score_col_table
         UNION ALL
        SELECT YEARS, GUBUN, '수학' AS SUBJECT, MATH AS SCORE
          FROM ch14_score_col_table
         UNION ALL
        SELECT YEARS, GUBUN, '과학' AS SUBJECT, SCIENCE AS SCORE
          FROM ch14_score_col_table
         UNION ALL
        SELECT YEARS, GUBUN, '지리' AS SUBJECT, GEOLOGY AS SCORE
          FROM ch14_score_col_table
         UNION ALL
        SELECT YEARS, GUBUN, '독일어' AS SUBJECT, GERMAN AS SCORE
          FROM ch14_score_col_table
         ORDER BY 1, 2 DESC;
    

    결과

        YEARS GUBUN    SUBJECT    SCORE
        ----- -------- ---------- ------
        2014  중간고사  독일어        82
        2014  중간고사  수학          67
        2014  중간고사  지리          93
        2014  중간고사  국어          92
        2014  중간고사  과학          80
        2014  중간고사  영어          87
        2014  기말고사  지리          89
        2014  기말고사  과학          91
        2014  기말고사  독일어        83
        2014  기말고사  영어          80
        2014  기말고사  국어          88
        2014  기말고사  수학          93
    

    각 과목에 해당하는 SELECT문을 하나씩, 총 6개의 SELECT문을 UNION ALL로 연결해 컬럼을 로우로 변환했다. 보기에 따라서 좀 무식한 방법처럼 보일지도 모르지만, 직관적이어서 가독성 측면에서는 나쁘지 않다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.