실습 테이블을 조회해보겠습니다.
SELECT * FROM sam_tab02를 입력한 결과는 다음과 같습니다.
다음과 같은 조회 결과를
아래와 같은 테이블로 조회하는 방법을 알아보겠습니다.
우선 행에 번호를 매기겠습니다.
위와 같은 명령어를 입력하여,
다음과 같은 테이블을 얻었습니다.
저희가 원하는 결과물에서는
가장 위의 값 'F107'부터
가장 아래 값 'F125'까지
Row를 4개씩 묶어서
Column으로 변경하는 것입니다.
따라서, RNO를 4개씩 동일한 수로 묶습니다.
이때는 CEIL 함수를 사용합니다.
CEIL함수는 값을 올리는 함수로
RNO의 값을 4로 나눈 값을 올림 하면
4개씩 동일한 값을 얻을 수 있습니다.
다음과 같이 명령어를 입력하면
다음과 같은 실행결과를 얻을 수 있습니다.
자 이제 4개씩 묶은 번호를 이용하여
컬럼값을 가로로 정렬해보겠습니다.
값을 정렬하는 데는 DECODE 함수를 사용하겠습니다.
DECODE는 DECODE(A, B, C)라고 했을 때,
A의 값이 B이면 C를 출력하는 함수를 말합니다.
이를 이용하여,
ROWNUM을 4로 나누고 남은 나머지 값이
1인 경우와, 2인 경우, 3인 경우, 0인 경우로 나눠서
그에 맞는 값을 가로로 정렬합니다.
다음과 같은 코드를 작성하면,
다음과 같은 실행결과를 얻을 수 있습니다.
위와 같은 결과물을 최종 결과물과 같이 변경하기 위해서는
RNO별로 하나의 행으로 정리될 필요가 있습니다.
이를 위해서는 MAX함수를 사용합니다.
GROUP BY 함수를 이용해서 그룹별로 정리를 하고,
그룹 별 최댓값을 출력하는 형식을 사용합니다.
결과물을 순서대로 출력하기 위해서
마지막에 ORDER BY 함수를 사용해 RNO 순으로 정렬합니다.
위와 같은 코드를 입력하면
최종적으로 우리가 원하던 결과물을 얻을 수 있습니다.
'내가 공부하려고 올리는 > DB' 카테고리의 다른 글
오라클 - 날짜와 시간을 더하고 빼기 (0) | 2021.11.03 |
---|---|
오라클 - ROUND와 TRUNC 함수의 차이 (0) | 2021.11.03 |
오라클 - LENGTH 함수를 이용하여 한글의 글자 수 알아내기 (0) | 2021.10.28 |
오라클 - 기초 정리 (0) | 2021.10.27 |
TOAD - Duplicate tag value: val; Doc=xl/styles.xml; Tag=x:font. 오류 해결 방법 (0) | 2021.10.25 |
댓글