Dico

SQL DECODE, CASE

  • 민갤

DECODE

인수가 조건n과 일치하면 결과n를 반환하고, 일치하는 값이 없거나 NULL이면 기본 결과를 반환한다.

기본 결과를 명시하지 않으면 NULL을 반환한다.

Java의 switch case문과 동일하다.

DECODE(인수, 조건1, 결과1,
             조건n, 결과n,
             기본 결과)
SELECT DECODE(department_id, 10, 'Adminstration',
                             20, 'Marketing',
                             30, 'purchasing',
                             40, 'Human Resources',
                             'Oracle')
 FROM departments
 ORDER BY department_id;

CASE

인수가 조건n과 일치하면 결과n을 반환하고, 일치하는 값이 없거나 NULL이면 ELSE의 기본 결과를 반환한다.

기본 결과를 명시하지 않으면 NULL을 반환한다.

Java의 if else문과 동일하다.

CASE 인수
    WHEN 조건1 THEN 결과1
    WHEN 조건n THEN 결과n
    ELSE 기본 결과
END
SELECT CASE department_id
        WHEN 10 THEN 'Adminstration'
        WHEN 20 THEN 'Marketing'
        WHEN 30 THEN 'purchasing'
        WHEN 40 THEN 'Human Resources'
        ELSE 'Oracle'
    END
 FROM departments
 ORDER BY department_id ASC;