오라클에는 if문과 비슷한 기능을 하는 DECODE 함수가 있다.
(DECODE : 여러가지 경우에 대해서 선택할 수 있도록 하는 기능)
https://sungeune97.tistory.com/75
[Oracle] NVL , NVL2, DECODE
1. NVL함수 : NULL일경우 (Oracle 함수 NVL (value,0) -- value가 null 일경우 0을 반환 / 그렇지 않을경우 value값을 반환 ex ) NVL(컬럼, 'SYSDATE') -> 컬럼 값이 없을 경우 SYSDATE를 반환 2. NVL2 함수 : NULL이 아닐경우
sungeune97.tistory.com
DECODE는 조건이 많아지면 가독성이 떨어지기 때문에 조건이 복잡한 경우 CASE WHEN을 사용하는게 좋다.
DECODE 함수는 조건이 일치(=비교 연산자)하는 경우에 대해서만 적용하지만, CASE 함수는 다양한 비교 연산자를 이용하여 조건 제시 및 범위 지정할 수 있다는 점이 이 둘의 차이점이다.
문법
CASE WHEN 조건1 THEN 리턴값1
WHEN 조건2 THEN 리턴값2
ELSE 리턴값
END AS 컬럼명
ELSE 부분은 생략이 가능하며, 만족하는 조건이 없으면 NULL을 리턴한다.
예제
SELECT stu_name, stu_code
, CASE WHEN stu_code = '1' THEN '1학년'
, CASE WHEN stu_code = '2' THEN '2학년'
ELSE '졸업대상'
END AS GRADE // Alias 지정해주어야함
FROM STU_TABLE
stu_name | stu_code | GRADE |
김서현 | 3 | 졸업대상 |
이보영 | 2 | 2학년 |
옥자연 | 1 | 1학년 |
'DBMS > Oracle' 카테고리의 다른 글
[Oracle] ORACLE - MERGE INTO 구문 (0) | 2021.06.29 |
---|---|
[Oracle] DELETE (0) | 2021.06.04 |
[Oracle] 전년도 현재 년도에 복사, INSERT - SELECT문 , SELECT한 결과를 INSERT (0) | 2021.05.27 |
[Oracle] 중복 데이터 찾기 / 중복 데이터 개수 찾기 GROUP BY / HAVING / COUNT (0) | 2021.03.05 |
[Oracle] 조회한 가상 컬럼의 연산 (0) | 2021.02.10 |