1) 조건에 따라 다른 값을 반환하는 데 사용되는 함수
2) DECODE는 CASE 구문과 유사한 기능
3) DECODE는 Oracle에서 제공하는 고유한 함수
✅ DECODE
📌 장점
- 간단한 조건에 따른 값 변환을 처리할 수 있습니다.
- CASE 문에 비해 구문이 간단하고 직관적일 수 있습니다.
📌 단점
- 복잡한 조건이나 여러 조건을 처리할 때 CASE 구문보다 가독성이 떨어질 수 있습니다.
- DECODE는 Oracle에 특화된 함수이므로 다른 데이터베이스 시스템에서는 사용할 수 없습니다.
- SQL 표준을 준수하려면 CASE 구문을 사용하는 것이 더 좋습니다.
DECODE(컬럼명, 비교값1, 반환값1, 비교값2, 반환값2, ..., 기본값)
ex)
1️⃣ 특정 값에 따라 다른 값을 반환하는 경우
SELECT employee_id, department_id,
DECODE(department_id, 10, 'HR', 20, 'IT', 30, 'Sales', 'Other') AS department_name
FROM employees;
department_id가 10이면 'HR', 20이면 'IT', 30이면 'Sales'를 반환하고, 그 외의 값은 'Other'를 반환
2️⃣ 단순 비교 예시
SELECT employee_id, salary,
DECODE(
WHEN salary < 3000 THEN 'Low'
WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium'
ELSE 'High'
) AS salary_category
FROM employees;
3️⃣ DECODE를 UPDATE와 함께 사용
UPDATE employees
SET salary = DECODE(
WHEN salary < 3000 THEN 4000,
WHEN salary BETWEEN 3000 AND 5000 THEN 4500,
ELSE 5000
);
✅ CASE
DECODE는 비교적 간단한 조건에 따른 값을 반환할 때 유용하며,
▶ 여러 조건을 처리해야 할 경우 CASE 구문을 사용하는 것이 더 효율적
ex)
SELECT employee_id, department_id,
CASE
WHEN department_id = 10 THEN 'HR'
WHEN department_id = 20 THEN 'IT'
WHEN department_id = 30 THEN 'Sales'
ELSE 'Other'
END AS department_name
FROM employees;
'Database > ORACLE' 카테고리의 다른 글
[ORACLE 이론] UNION 중복 제거 (0) | 2025.01.21 |
---|---|
[ORACLE 이론] 여러 값을 한 번에 업데이트 (0) | 2025.01.15 |
[ORACLE 이론] StringBuffer / StringBuilder (0) | 2024.02.19 |
[ORACLE 이론] NVL 함수 (0) | 2024.02.15 |
[ORACLE 이론] 조건문 (0) | 2024.02.14 |