[SQL] Oracle에서 조건별 값 변환을 DECODE로 깔끔하게 처리하기

Unit·2025년 12월 2일

SQL

목록 보기
50/59

SQL에서 조건에 따라 값을 변환할 때 보통 CASE WHEN을 사용합니다.
하지만 Oracle 환경에서는 같은 로직을 DECODE로 훨씬 간단하게 표현할 수 있습니다.
특히 단순 매핑 구조에서는 DECODE가 짧고 읽기 편하다는 장점이 있습니다.


🧐 CASE WHEN으로 처리하는 일반적인 예시

CASE 
  WHEN status = 'A' THEN 'Active'
  WHEN status = 'I' THEN 'Inactive'
  ELSE 'Unknown'
END

조건이 많아질수록 코드가 길어지고, WHEN절이 반복되기 때문에 가독성이 떨어지는 경우가 있습니다.


👍🏻 Oracle에서 DECODE로 처리하는 예시

DECODE(status,
       'A', 'Active',
       'I', 'Inactive',
       'Unknown')
  • status = 'A'면 'Active'
  • status = 'I'면 'Inactive'
  • 그 외는 'Unknown'

이처럼 동등 비교만 필요한 경우에는 DECODE가 훨씬 간결하게 목적을 표현합니다.


정리

✔️ Oracle에서는 DECODE로 CASE문을 간단하게 대체할 수 있습니다.

profile
협업, 유지보수, 최적화를 고려한 데이터 실무 팁을 정리합니다.

0개의 댓글