[SQLD/P] DECODE

Hyo Kyun Lee·2022년 11월 2일
0

SQLD/P

목록 보기
37/82

1. 개요

실무에서 사용하는 Oracle query 문법중 하나인 DECODE는 크게 두가지 목적으로 활용할 수 있다.

2-1. 조건문으로의 활용

DECODE의 기본적인 문법으로, CASE WHEN보다는 상대적으로 짧은 길이로 조건문 쿼리를 작성할 수 있다.

DECODE(COLUMN, CASE_A, 'A', CASE_B, 'B', 'C')
  • COLUMN의 결과가 CASE_A일 경우 'A', CASE_B일 경우 'B', CASE_C일 경우 'C'를 출력한다.

2-2. 선별문으로의 활용(~한 것중 하나)

선별문으로 활용하게 된다면 MIN, MAX 등과 같이 말 그대로 선별할 수 있는 문법/함수를 이용해야 한다.

MIN(DECODE(COLUMN, 'CASE_A', FACTOR, ''))
  • COLUMN의 결과가 'CASE_A'일 경우 FACTOR를 가져오고, 아니라면 공란이다.
  • COLUMN의 결과가 'CASE_A'인 FACTOR를 모두 가져오고, 이 중 MIN(최소값)을 최종적으로 도출한다.
MAX(DECODE(COLUMN, 'CASE_B', FACTOR, ''))
  • COLUMN의 결과가 'CASE_B'일 경우 FACTOR를 가져오고, 아니라면 공란이다.
  • COLUMN의 결과가 'CASE_B'인 FACTOR를 모두 가져오고, 이 중 MAX(최대값)을 최종적으로 도출한다.

3. 유의사항

DECODE문을 선별문으로 활용하여도, 기본적으로 DECODE가 조건문을 의미하는 문법임을 잊지 않도록 한다.

0개의 댓글