반응형
오라클의 CASE 함수를 사용하면
DECODE로 처리하던 쿼리문을 보다 간단하게 만들 수 있습니다.
실습해보기
1. TEMP 테이블을 이용해 연봉이 30,000,000 이하는 'D',
30,000,000 초과 50,000,000 이하는 'C',
50,000,000 초과 70,000,000 이하는 'B';
70,000,000 초과는 'A'라고 등급을 출력하고,
등급별 인원수를 구해보자(CASE 함수 사용)
- CASE 함수의 기본형식
SELECT CASE WHEN '컬럼명1' [조건] THEN '결과값'
CASE WHEN '컬럼명2' [조건] THEN '결과값'
.
.
.
CASE WHEN '컬럼명N' [조건] THEN '결과값' END
FROM 테이블명;
- CASE WHEN 뒤에 조건을 부여한다.
2. 행 단위로 나오는 DATA SET을 컬럼 단위로 표현해보자
- COUNT 함수를 행마다 사용하고 END로 구문마다 종료해준다.
- ALIAS 명을 주어 DATA SET을 보다 직관적으로 만든다.
3. SALE_HIST 테이블을 이용해 일자별, 품목별로 '01', '02' 사업장 판매 금액의 합과
'02', '03' 사업자 판매 금액의 합을 구해보자(CASE 함수 이용)
- 판매장의 코드가 '01'과 '02' 사이인 경우 판매액을 가져와서 더하고,
판매장의 코드가 '02'와 '03' 사이인 경우 판매액을 가져와서 더하는 쿼리문을
CASE 함수를 사용해 구현할 수 있다.
반응형
'내가 공부하려고 올리는 > DB' 카테고리의 다른 글
MySQL - 자료형 헷갈리는 거 정리 (0) | 2022.04.21 |
---|---|
오라클 - ROW TO COLUMN, COLUMN TO ROW (0) | 2021.11.18 |
오라클 - 윈도우(Window) 함수 (0) | 2021.11.18 |
오라클 - 계층형 쿼리(Hierachical Select) 알아보기 (0) | 2021.11.17 |
오라클 - ROWNUM 쉽게 알아보기 (0) | 2021.11.17 |
댓글