본문 바로가기

DB

[SQLD] CASE 함수, DECODE 함수

반응형

CASE 함수

1. 조건식에 따라 반환값이 결정되는 구문이다. 

2. CASE WHEN <조건식1> THEN <반환값1> END

3. 예제 

SELECT ENAME, SAL,
CASE WHEN SAL<1000 THEN 'C등급' 
     WHEN SAL>=1000 AND SAL<2000 THEN 'B등급'
     ELSE 'A등급'
END
FROM EMP;

 

4. 예제2

SELECT ENAME, SAL,
CASE WHEN SAL<=1000 THEN SAL*3 
     WHEN SAL>1000 AND SAL<2000 THEN SAL*2.5
     WHEN SAL>=2000 THEN SAL*3
END AS "인상값"
FROM EMP;

SELECT ENAME,
CASE WHEN ENAME LIKE 'S%' THEN 'S' 
     WHEN ENAME LIKE 'A%' THEN 'A'
     ELSE 'X'
END AS "출력"
FROM EMP;

 

5. ELSE절을 사용하지 않는 경우, 조건에 맞는 경우를 제외하고  NULL로 표현된다. 

 

DECODE 함수 

1. CASE 표현식의 하나로 등가조건(=)만 사용가능한 함수 

2. DECODE(<컬럼명>, <값1>, <반환값1>) - 컬럼명이 값1이면 반환값1을 가져온다. 

3. 예제

SELECT DEPTNO,
DECODE (DEPTNO,10,'TRUE','FALSE')
FROM EMP;

SELECT ENAME,JOB,SAL,
DECODE (JOB, 'CLERK', SAL*1.1,
        'SALESMAN', SAL*1.2,
        'PRESIDENT', SAL*4,
        'MANAGER', SAL*1.1,
        'ANALYST', SAL*1.3)
FROM EMP;

 

반응형