SQL에서 DECODE 함수는 조건에 따라 값을 변환하는 함수입니다.
이 함수는 기본적으로 값을 비교하여 조건에 맞는 값을 반환하는 방식으로 동작하며, 특정 DBMS(예: Oracle)에서 주로 사용됩니다.
DECODE 함수는 아래와 같은 형식을 따릅니다.
DECODE(expression, search1, result1, search2, result2, ..., default_result)
SELECT
employee_id,
DECODE(grade, 1, 'Beginner', 2, 'Intermediate', 3, 'Advanced', 'Unknown') AS grade_name
FROM employees;
2. 여러 조건 처리 DECODE 함수는 여러 조건을 처리할 수 있습니다.
예를 들어, 제품 상태에 따라 다른 메시지를 반환할 수 있습니다.
SELECT
product_id,
DECODE(status, 'A', 'Available', 'O', 'Out of stock', 'D', 'Discontinued', 'Unknown') AS status_desc
FROM products;
3. 숫자 비교 DECODE를 사용하여 숫자를 비교할 수 있습니다.
예를 들어, 점수에 따라 성적을 변환할 때 사용할 수 있습니다.
SELECT
student_id,
DECODE(score, 90, 'A', 80, 'B', 70, 'C', 60, 'D', 'F') AS grade
FROM students;
DECODE 함수는 매우 유용하지만, SQL 표준 함수는 아니며 주로 Oracle에서 많이 사용됩니다. CASE 구문은 SQL 표준이며 더 유연합니다. 예를 들어, 같은 기능을 CASE로 구현하면:
SELECT
employee_id,
CASE WHEN grade = 1 THEN 'Beginner'
WHEN grade = 2 THEN 'Intermediate'
WHEN grade = 3 THEN 'Advanced'
ELSE 'Unknown' END AS grade_name
FROM employees;
DECODE와 CASE는 같은 기능을 제공하지만, CASE는 보다 복잡한 논리 조건도 처리할 수 있다는 점에서 더 강력합니다.
| 데이터베이스 with 쿼리 CTE 쿼리 사용하는 방법 (0) | 2024.11.11 |
|---|---|
| SET GLOBAL WAIT_TIMEOUT 시간 설정 (0) | 2024.11.07 |
| 데이터베이스 SQL 조건절 where 1=1 뜻 (0) | 2024.11.05 |
| 데이터베이스 SQL 서브쿼리 EXIST 함수 사용 (1) | 2024.11.03 |
| select 1 from 테이블 쿼리 사용하는 방법 (0) | 2024.11.02 |