oracle
[oracle] decode 의 사용법.
JKimKorea
2021. 5. 20. 13:15
DECODE (expr, search1, result1, search2, result2, …, default)-오라클의 전통적인 대표함수.
DECODE는 expr과 search1값을 비교해 두 값이 같으면 result1을, 같지 않으면 다시 search2와 비교해 값이 같으면 result2를 반환하고, 이런 식으로 계속 비교한 뒤 최종적으로 같은 값이 없으면 default 값을 반환한다.
입력
SELECT DECODE(channel_id, 3, 'Direct', 9, 'Direct', 5, 'Indirect', 4, 'Indirect', 'Others') decodes
FROM sales
WHERE rownum < 10;
결과
DECODES
---------
Others
Indirect
Indirect
Indirect
Indirect
Indirect
Indirect
Indirect
Others
9개의 행이 선택됨.
앞의 쿼리는 매출 테이블에서 무작위로 9건을 추출해 channel_id가 3, 9인 건은 ‘Direct’, 4, 5인 건은 ‘Indirect’, 나머지는 ‘Others’로 보여주는 쿼리다.
눈치챘겠지만 DECODE 함수는 일반 프로그래밍 언어에 있는 IF~ELSE 문과 그 처리 방식이 같고 3장에서 배웠던 CASE와도 처리 방식이 비슷하다. 다만 DECODE 함수는 비교 값과 결과 값을 일일이 나열해야 하므로 DECODE보다는 CASE 표현식을 사용하는 것이 코드가 깔끔해진다.