Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- blockscope
- Django #장고 #에러해결방법 #templatetags
- springboot #에러
- react #리액트 #JSX
- react #mini_project #study
- react #props #state
- react #event
- yarn #오류
- regexp_substr함수
- PostgreSQL
- DTO #VO
- git #삭제
- db #mysql #mariadb
- flutter #flutter개념 #특징 #장단점
- MariaDB #Error
- JSP #Java #JQuery
- javascript #자바스크립트 #공백제거함수
- kotlin #코틀린 #SpringDataJPA단점
- oracle #
- SQL
- 데이터집계
- db #with절 #오라클 #oracle #쿼리 #query
- 인텔리제이 #intelliJ #패키지생성 #package
- Django #Static
- python #json
- 인프런 #assertThat #오류
- JPA #Springboot #java
- react #ref
- django #db #오류
- decode함수
Archives
- Today
- Total
감자의 개발공부 일지
[Oracle] 오라클 DECODE 함수로 복잡한 조건 처리 간단하게 해결하기(조건에 따른 값 변환) 본문
반응형
1. DECODE 함수란?
- DECODE 함수는 오라클 SQL에서 조건에 따라 다른 값을 반환하는 함수.
- 기본적으로 IF-ELSE 논리처럼 작동하며, 특정 조건을 만족하면 지정된 값을 반환하고, 그렇지 않으면 다른 값을 반환하는 방식으로 작동
- DECODE 함수는 복잡한 조건문을 간단하게 처리할 수 있는 유용한 도구로, 특히 값의 비교 및 변환에 사용됨.
- CASE 표현식보다 간단하고 직관적인 형태로 조건을 처리할 때 유리.
문법
DECODE(expression, search_value, result_value, [default_value])
- expression: 비교할 값 (주로 컬럼 값)
- search_value: 비교할 값 (여러 조건을 추가할 수 있음)
- result_value: expression이 search_value와 일치할 경우 반환할 값
- default_value: 조건에 맞지 않으면 반환할 기본값 (선택 사항)
예제
예제 1 (부서별 직원 명칭 반환)
SELECT employee_id, DECODE(department_id, 10, 'Sales', 20, 'Marketing', 'Other') AS department_name
FROM employees;
-> department_id 값에 따라 부서명을 반환.
-> 값이 10이면 'Sales', 20이면 'Marketing', 그 외에는 'Other'를 반환.
결과 1
employee_id | department_name |
101 | Sales |
102 | Marketing |
103 | Other |
104 | Other |
예제 2 (성과에 따른 보너스 지급 여부)
SELECT employee_id, DECODE(performance_rating, 'Excellent', 'Bonus', 'Good', 'Bonus', 'No Bonus') AS bonus_status
FROM employees;
-> performance_rating 값에 따라 보너스를 지급할지 여부를 판단.
-> 성과가 'Excellent'이나 'Good'이면 'Bonus'를, 그렇지 않으면 'No Bonus'를 반환.
결과 2
employee_id | bonus_status |
101 | Bonus |
102 | Bonus |
103 | No Bonus |
104 | Bonus |
예제 3 (연령대별 그룹화)
SELECT employee_id, DECODE(age,
BETWEEN 18 AND 25, 'Young',
BETWEEN 26 AND 40, 'Middle-Aged',
BETWEEN 41 AND 60, 'Experienced',
'Senior') AS age_group
FROM employees;
-> age 값에 따라 연령대 그룹을 반환.
-> 18세에서 25세는 'Young', 26세에서 40세는 'Middle-Aged', 41세에서 60세는 'Experienced', 그 외에는 'Senior'를 반환.
결과 3
employee_id | age_group |
101 | Young |
102 | Middle-Aged |
103 | Experienced |
104 | Senior |
예제 4 (NULL 값 처리)
SELECT employee_id, DECODE(salary, NULL, 'No Salary Data', salary) AS salary_status
FROM employees;
-> salary 값이 NULL인 경우 'No Salary Data'를 반환. 그렇지 않으면 해당 salary 값을 반환
결과 4
employee_id | salary_status |
101 | 5000 |
102 | No Salary Data |
103 | 4500 |
104 | 6000 |
반응형
'DB' 카테고리의 다른 글
[PostgreSQL] 데이터 집계 처리, 집계 함수로 데이터 분석 효율화하기(COUNT, SUM, AVG, MAX, MIN, GROUP BY) (0) | 2025.03.19 |
---|---|
[PostgreSQL] 원하는 갯수만큼 데이터 조회하기: LIMIT과 OFFSET 활용법 (0) | 2025.03.12 |
[PostgreSQL] 문자열 함수(SUBSTRING, LENGTH, UPPER, REGEXP_REPLACE) (0) | 2025.03.10 |
[Oracle] 오라클 CONCAT 함수 (문자결합, NVL, COALESCE) (0) | 2025.03.06 |
[Oracle] 오라클 REGEXP_SUBSTR 함수 사용법 및 예제 (0) | 2024.05.30 |