SQL DECODE 함수 사용법

핵심 원리

DECODE 함수는 SQL에서 IF 문과 유사하게 조건에 따라 다른 값을 반환하는 함수입니다. 주어진 열의 값이 특정 조건과 일치하는 경우 지정된 값을 반환하고, 그렇지 않은 경우 기본 값을 반환합니다. 이를 통해 여러 조건에 따른 다양한 값을 SQL 쿼리 내에서 처리할 수 있습니다.

실무에서 쓰이는 이유

DECODE 함수는 복잡한 조건을 단순화하여 SQL 쿼리 내에서 쉽게 처리할 수 있도록 해줍니다. 특히 다양한 조건에 따라 데이터를 변환하거나 필터링할 때 유용합니다. 실무에서는 보고서 생성, 데이터 분석, 필터링 등 다양한 데이터 처리 작업에서 활용됩니다.

연습 문제

  1. 사원 테이블에서 부서 번호에 따라 보너스를 출력하는 쿼리를 작성하세요. 부서 번호가 10이면 300, 20이면 400, 그렇지 않으면 0을 출력합니다.
  2. 사원 번호의 짝수, 홀수 여부에 따라 “짝수” 또는 “홀수”를 출력하는 쿼리를 작성하세요.

연습 문제 해답

  1. SELECT ename, deptno, DECODE(deptno, 10, 300, 20, 400, 0) AS 보너스 FROM emp;
   SELECT empno, mod(empno, 2), DECODE(mod(empno, 2), 0, '짝수', 1, '홀수') AS 보너스
   FROM emp;

응용 문제

  1. 사원 테이블에서 직업이 ‘SALESMAN’인 경우 보너스를 5000, 그 외의 직업인 경우 보너스를 2000으로 출력하는 쿼리를 작성하세요.

응용 문제 해답

  1. SELECT ename, job, DECODE(job, 'SALESMAN', 5000, 2000) AS 보너스 FROM emp;

실무 유형 문제

  1. 사원 테이블에서 부서 번호에 따라 보너스를 결정하고, 직업에 따라 추가 보너스를 적용하는 복잡한 조건 쿼리를 작성하세요. 예를 들어, 부서 번호가 10이면 300, 20이면 400, 그렇지 않으면 0을 적용하고, 직업이 ‘MANAGER’이면 추가로 1000을 더한 값을 출력합니다.

실무 유형 문제 해답

  1. SELECT ename, deptno, job, DECODE(deptno, 10, 300, 20, 400, 0) + DECODE(job, 'MANAGER', 1000, 0) AS 총보너스 FROM emp;
Posts created 411

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top