본문 바로가기
내가 공부하려고 올리는/DB

오라클 - ROW TO COLUMN, COLUMN TO ROW

by 결딴력 2021. 11. 18.
반응형

 

이번 글에서는 지난번에 작성한

'오라클 - Row 단위 자료를 Column 단위로 변경하기'

 

https://determination.tistory.com/manage/newpost/30?type=post&returnURL=https%3A%2F%2Fdetermination.tistory.com%2Fentry%2F%25EC%2598%25A4%25EB%259D%25BC%25ED%2581%25B4-Row-%25EB%258B%25A8%25EC%259C%2584-%25EC%259E%2590%25EB%25A3%258C%25EB%25A5%25BC-Column-%25EB%258B%25A8%25EC%259C%2584%25EB%25A1%259C-%25EB%25B3%2580%25EA%25B2%25BD%25ED%2595%2598%25EA%25B8%25B0

 

determination.tistory.com

글을 보강하여,

 

ROW 단위를 COLUMN 단위로 변경하는 것은 물론,

COLUMN을 ROW 단위로 변경하는 것을 알아보고,

이들이 갖는 일정한 형식을 찾아서 정리해보려고 합니다.

 

 

 

ROW 단위 자료를 COLUMN 단위로.

  • ROW 단위 자료를 COLUMN 단위로 변경할 때는 일정한 규칙이 있습니다.
  • 규칙을 우선 정리하면 다음과 같습니다.(컬럼을 4개로 만들 때 기준)
    1. 조회하고자 하는 쿼리문에 'ROWNUM'을 붙인다.
    2. 'ROWNUM'을 인라인 뷰(Inline View)로 활용하기 위해 ALIAS를 부여한다.
    3. CEIL 함수를 사용해 ROWNUM을 4로 나눈 컬럼을 추가해 4개씩 동일한 번호를 부여한다.
    4. 2번까지 작성했던 함수를 인라인 뷰로 활용한다.
    5. 4개씩 묶인 데이터에 다시 순서를 부여한다.(MOD 함수 이용, 4로 나눈다.)
    6. MOD 함수로 나온 DATA SET(0, 1, 2, 3)과 DECODE 함수를 이용해 데이터를 각각 다른 행으로 분산한다.
    7. MAX 함수를 사용해 데이터를 보기좋게 정렬한다.
  • 위의 규칙을 차례대로 예제를 통해 확인해보겠습니다.
    1. 조회하고자 하는 쿼리문에 'ROWNUM'을 붙인다.
    2. 'ROWNUM'을 인라인 뷰(Inline View)로 활용하기 위해 ALIAS를 부여한다.
      1, 2
    3. CEIL 함수를 사용해 ROWNUM을 4로 나눈 컬럼을 추가해 4개씩 동일한 번호를 부여한다.
    4. 2번까지 작성했던 함수를 인라인 뷰로 활용한다.
      3, 4
    5. 4개씩 묶인 데이터에 다시 순서를 부여한다.(MOD 함수 이용, 4로 나눈다.)
      5
    6. MOD 함수로 나온 DATA SET(0, 1, 2, 3)과 DECODE 함수를 이용해 데이터를 각각 다른 행으로 분산한다.
      6
    7. MAX 함수를 사용해 데이터를 보기좋게 정렬한다.
      7, 최종 결과

COLUMN 단위를 ROW 단위로.

  • COLUMN 단위 자료를 ROW단위로 변경할 때도 일정한 규칙이 있습니다.
  • 규칙을 우선 정리하면 다음과 같습니다. (컬럼이 4개인 자료를 기준으로 할 때)
    1. FROM 절에 ROWNUM이 4인 행을 가진 DATA SET을 FROM 절에 기술해준다.(카타시안 곱)
    2. ROW 단위로 변경하고자 하는 COLUMN을 UNIQUE KEY로 만들어줘야 하기 때문에
      DECODE 함수를 사용한다.
    3. UNIQUE KEY로 만들어진 ROW에 해당하는 값을 가져오기 위해 DECODE 함수를 사용한다.
  • 위의 규칙을 차례대로 예제를 통해 확인해보겠습니다.
    1. FROM 절에 ROWNUM이 4인 행을 가진 DATA SET을 FROM 절에 기술해준다.(카타시안 곱)
      1, 실행문


      1, 실행 결과(1)
      1, 실행 결과(2)
    2. ROW 단위로 변경하고자 하는 COLUMN을 UNIQUE KEY로 만들어줘야 하기 때문에
      DECODE 함수를 사용한다.
      2


    3. UNIQUE KEY로 만들어진 ROW에 해당하는 값을 가져오기 위해 DECODE 함수를 사용한다.
      3, 실행문

      3, 실행 결과(1)

      3, 실행 결과(2)
반응형

댓글