본문 바로가기
SQL

[Oracle] SQL (DECODE, CASE 함수)

by Queen2 2022. 9. 7.
728x90
반응형

조건함수 (DECODE, CASE)

DECODE : 조건이 반드시 일치하는 경우에 사용되는 함수 (오라클 전용)

DECODE(컬럼, 비교값1, 결과값1, 비교값2, 결과값2,... 비교값N, 결과값N, 기본 결과값) 

 

==> 컬림이 비교값N과 일치하면 결과값N을 반환하고,

      모두 일치하지 않으면 기본적으로 마지막의 결과값을 반환해라 

SELECT last_name,salary,
DECODE(salary,2000, salary*0.3, 1000, salary*0.2, salary)
FROM employees;

 

 

CASE : 조건이 꼭 일치 안해도 범위/비교가 가능한 경우에 사용 (오라클 아니어도 사용 가능)

1) 동등의 경우

CASE 컬럼 WHEN 비교값1 THEN 결과값1

                    WHEN 비교값1 THEN 결과값1

                    WHEN 비교값1 THEN 결과값1 

                    ELSE 결과값

END

 

2) 비교의 경우 (비교연산자, 논리 연산자 다 사용가능함)

CASE  WHEN 컬럼 > 비교값1 THEN 결과값1

             WHEN 컬럼 > 비교값2 THEN 결과값1

              WHEN 컬럼 > 비교값3 THEN 결과값1 

              ELSE 결과값

END

WHEN apple>2000 and length(name) = 3

728x90
반응형

댓글