티스토리 뷰

it

오라클 DECODE와 CASE 사용법 및 차이점

ITs Story biaos 2023. 8. 1. 09:45

오라클 DECODE와 CASE 사용법 및 차이점




오라클 데이터베이스에서는 DECODE 함수와 CASE 문을 활용하여 복잡한 알고리즘을 하나의 SQL 명령문으로 간결하게 표현할 수 있습니다. 이번 글에서는 DECODE와 CASE 함수의 사용법과 각각의 특징, 그리고 두 함수의 차이점에 대해 알아보겠습니다.


1. DECODE 함수 사용법


DECODE 함수는 주어진 값과 비교하여 해당하는 결과를 반환하는데 사용됩니다. 주로 IF문이나 CASE문으로 표현되는 조건문을 간결하게 표현하기 위해 사용됩니다. DECODE 함수의 기본적인 사용법은 다음과 같습니다


SELECT name, deptno,
DECODE(deptno, 101, '컴퓨터공학과', 102, '멀티미디어학과', 201, '전자공학과', '기계공학과') DNAME
FROM professor;


위 예제에서는 professor 테이블의 deptno 값에 따라 다른 학과명을 DNAME으로 출력하고 있습니다. deptno가 101이면 '컴퓨터공학과', 102면 '멀티미디어학과', 201이면 '전자공학과', 그 외의 값은 default인 '기계공학과'로 반환됩니다.

2. CASE 문 사용법


CASE 문은 DECODE 함수의 기능을 확장한 함수로, IF문이나 CASE문과 유사한 동작을 수행할 수 있습니다. CASE 문의 기본적인 사용법은 다음과 같습니다


SELECT name, deptno, sal,
CASE
WHEN deptno = 101 THEN sal * 0.1
WHEN deptno = 102 THEN sal * 0.2
WHEN deptno = 201 THEN sal * 0.3
ELSE 0
END bonus
FROM professor;


위 예제에서는 professor 테이블의 deptno 값에 따라 다른 보너스를 계산하여 출력하고 있습니다. deptno가 101이면 급여의 10%를, 102면 20%를, 201이면 30%를 반환하고, 그 외의 보너스는 0을 반환합니다.

3. DECODE와 CASE 함수의 차이점


DECODE와 CASE 함수는 조건문을 처리하는데 사용되지만, 조금 다른 특징을 가지고 있습니다. DECODE 함수는 단순한 값과 대응하는 결과를 지정하는 방식으로 주로 사용되며, 조건의 개수가 적을 때 간결하게 사용할 수 있습니다. 반면에, CASE 문은 더 복잡한 조건식을 활용하여 다양한 경우의 수를 처리할 때 사용됩니다. IF문과 유사한 형태로 다양한 조건을 사용할 수 있으며, 부등식으로도 조건을 비교할 수 있어 더 유연한 사용이 가능합니다.

 



이번 글에서는 오라클 데이터베이스에서 사용되는 DECODE와 CASE 함수에 대해 알아보았습니다. DECODE 함수는 단순한 값과 결과의 대응을 지정할 때 사용되고, CASE 문은 더 복잡한 조건식과 다양한 경우의 수를 처리할 때 유용합니다. 쿼리를 작성할 때 DECODE와 CASE 함수를 적절히 활용하여 간결하고 효율적인 데이터 변환을 수행할 수 있습니다. 두 함수를 잘 이해하고 활용한다면, 쿼리 작성 시 삽질을 크게 줄일 수 있을 것입니다.

댓글