개발 지식/[DBMS] Oracle
[Oracle] 조건 관련 함수(2) - CASE문
devGSP
2022. 5. 17. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 |
CASE문
설명
DECODE() 함수와 달리 각 조건에 사용하는 데이터가 서로 상관이 없어도 됨. 또 기준 데이터값이 같은 데이터 외에 다양한 조건을 사용할 수 있어 DECODE() 함수에 비해 범용성이 더 높음
문법
CASE 검사할 열 또는 데이터 / 연산이나 함수의 결과(선택)
WHEN 조건1 THEN 조건1의 결과값이 true일 때, 반환할 결과
WHEN 조건2 THEN 조건2의 결과값이 true일 때, 반환할 결과
...
WHEN 조건n THEN 조건n의 결과값이 true일 때, 반환할 결과
ELSE 위 조건1~조건n과 일치하는 경우가 없을 때 반환할 결과
END
사용 예시
-- CASE query1
SELECT EMPNO
, ENAME
, JOB
, SAL
, CASE JOB
WHEN 'MANAGER' THEN SAL*1.1
WHEN 'SALESMAN' THEN SAL*1.05
WHEN 'ANALYST' THEN SAL
ELSE SAL*1.03
END AS UPSAL
FROM EMP;
-- CASE query2
SELECT EMPNO
, ENAME
, COMM
, CASE
WHEN COMM IS NULL THEN '해당사항 없음'
WHEN COMM = 0 THEN '수당없음'
WHEN COMM > 0 THEN '수당 : ' || COMM
END AS COMM_TEXT
FROM EMP;
결과
-- CASE query1
-- CASE query2
반응형