개발 기록이

[Oracle] DECODE, CASE 조건문 처리 본문

기록/DB

[Oracle] DECODE, CASE 조건문 처리

studyingbackhoe 2024. 10. 6. 12:27

Oracle에서 DECODE와 CASE문을 이용하여 조건문을 처리할 수 있다.

 

1. DECODE

SELECT DECODE(POSITION, '부장', UNISTR('책임'), POSITION) AS POSITION_NM
FROM EMP_TB;
SELECT DECODE(DEPART_ID, 
              100, '인사팀', 
              200, '디자인팀', 
              300, '영업팀', 
              '기타') AS DEPART_NM
FROM EMP_TB;

 

* UNISTR 함수

문자열을 유니코드 형식으로 변환하여 다양한 인코딩 환경에서도 인코딩이 깨지지 않고 올바르게 표시될 수 있도록 한다.

 

2. CASE

SELECT CASE DEPART_ID 
           WHEN 100 THEN '인사팀'
           WHEN 200 THEN '디자인팀'
           WHEN 300 THEN '영업팀'
           ELSE '기타'
       END AS DEPART_NM
FROM EMP_TB;

 

SELECT USER_ID,
       SCORE,
       CASE 
           WHEN SCORE > 80 THEN 'A등급'
           WHEN SCORE > 70 THEN 'B등급'
           WHEN SCORE > 60 THEN 'C등급'
           ELSE 'D등급'
       END AS GRADE
FROM GRADE_TB;

 

간단한 조건문을 처리할 때는 DECODE를 사용하고, 복잡하거나 여러 조건이 있을 경우에는 CASE 문을 사용하면 된다.

 

오라클 로고 작가: Icons8