오라클 데이터베이스에서 제공하는 DECODE 함수는 조건을 검사하여 여러 인수 중 하나를 결정하는 함수입니다. DECODE는 오라클의 내장 함수로, SQL 쿼리에서 사용할 수 있습니다. 이를 통해 복잡한 로직을 처리하거나 조건에 따른 값을 반환하는 등 다양한 활용이 가능합니다.
DECODE 함수의 기본 구문은 다음과 같습니다.
DECODE (expression, search, result [, search, result]... [, default])
expression: 검사하고자 하는 컬럼 또는 값
search: 비교할 값
result: expression과 비교 값이 같을 경우 반환되는 값
default (옵션): 모든 비교 값과 같지 않은 경우 반환되는 값
다음은 간단한 사용 예시입니다.
SELECT DECODE (job, 'MANAGER', '관리자', 'SALESREP', '영업', '기타') AS 직책 FROM employees;
SELECT DECODE (job, 'MANAGER', '관리자', 'SALESREP', '영업', '기타')
AS 직책
FROM employees;
이 쿼리는 employees 테이블의 job 컬럼에 대해서 다음 조건을 적용합니다.
1. job 값이 'MANAGER'인 경우, '관리자' 반환
2. job 값이 'SALESREP'인 경우, '영업' 반환
3. 그 외의 경우, '기타' 반환
1: 성적 구분하기
학생들의 성적 데이터가 있다고 가정합니다. 이 데이터를 DECODE 함수를 사용하여 성적 구분으로 나눌 수 있습니다.
사례 2: 조건에 따른 할인률 적용하기 상품의 카테고리별로 각각 다른 할인율을 적용하고자 합니다.
SELECT product_name, price,
DECODE (category, 'Electronics', price * 0.9, 'Furniture', price * 0.85, price)
AS discounted_price
FROM products;
장점
단점
오라클 가능하나, 다른 DBMS의 호환성 문제로 제한될 수 있습니다. 따라서 실무에서는 DECODE의 장단점을 고려하여 적절히 사용하는 것이 중요합니다.
오라클 데이터베이스(Oracle Database) - ROW_NUMBER() 함수 (0) | 2023.05.24 |
---|---|
오라클 데이터베이스(Oracle Database) - ROWNUM (0) | 2023.05.24 |
오라클 데이터베이스(Oracle Database) - CASE WHEN, THEN, 조건절 (0) | 2023.05.24 |
오라클 데이터베이스(Oracle Database) - VIEW (0) | 2023.05.24 |
오라클 데이터베이스(Oracle Database) - REPLACE (0) | 2023.05.24 |
댓글 영역