SQL에서 조건에 따라 값을 변환할 때 보통 CASE WHEN을 사용합니다.
하지만 Oracle 환경에서는 같은 로직을 DECODE로 훨씬 간단하게 표현할 수 있습니다.
특히 단순 매핑 구조에서는 DECODE가 짧고 읽기 편하다는 장점이 있습니다.
CASE
WHEN status = 'A' THEN 'Active'
WHEN status = 'I' THEN 'Inactive'
ELSE 'Unknown'
END
조건이 많아질수록 코드가 길어지고, WHEN절이 반복되기 때문에 가독성이 떨어지는 경우가 있습니다.
DECODE(status,
'A', 'Active',
'I', 'Inactive',
'Unknown')
이처럼 동등 비교만 필요한 경우에는 DECODE가 훨씬 간결하게 목적을 표현합니다.
✔️ Oracle에서는 DECODE로 CASE문을 간단하게 대체할 수 있습니다.