CASE WHEN THEN
- 조건문 역할 > 컬럼값 조작을 한다.
- 대부분의 절에서 사용 가능하다.
- 조건을 만족하지 못한면 null을 반환한다(***)
CASE
WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
...
ELSE 기본결과
END
- 조건1, 조건2 등은 참 또는 거짓을 판별하는 조건식
- 조건1이 참이면 결과1이 반환되고, 조건2가 참이면 결과2가 반환된다.
- 만약 어떤 조건도 참이 아니라면 ELSE 절에 지정된 기본결과가 반환된다.
-- m이면 남자, f이면 여자 반환
SELECT
LAST||FIRST AS name,
CASE
WHEN GENDER = 'm' THEN '남자'
WHEN GENDER = 'f' THEN '여자'
END AS gender
FROM TBLCOMEDIAN ;
-- 체중이 50kg이상 90이하이면 정상체중 그 외이면 주의체중 반환
SELECT
LAST||FIRST AS name,
WEIGHT ,
CASE
WHEN WEIGHT BETWEEN 50 AND 90 THEN '정상체중'
ELSE '주의체중'
END AS state
FROM TBLCOMEDIAN ;
DECODE
- 조건에 따라 값을 변환하거나 선택할 때 사용한다.
- 못찾으면 null을 반환 > case when 대신 사용하기도 한다.
DECODE(표현식, 값1, 결과1, 값2, 결과2, 기본결과)
- "표현식"은 비교할 값이나 컬럼
- "값1"과 "값2"는 비교할 값들
- "결과1"과 "결과2"는 "표현식"이 각각 "값1" 또는 "값2"와 일치할 때 반환될 결과
- "기본결과"는 "표현식"이 어떤 값과도 일치하지 않을 때 반환될 결과
-- tblcomedian. 성별 > 남자, 여자로 표현
SELECT
gender,
-- 1. case when
CASE
WHEN gender = 'm' THEN '남자'
WHEN gender = 'f' THEN '여자'
END AS g1,
-- 2. replace
REPLACE(replace(gender, 'm', '남자'), 'f','여자') AS g2,
--3. decode
decode(gender, 'm', '남자', 'f', '여자') AS g3
FROM tblcomedian;
'ORACLE' 카테고리의 다른 글
[Oracle] 숫자 함수, Numerical Function (0) | 2023.09.18 |
---|---|
[Oracle] 집계 함수, Aggregation Function (0) | 2023.09.18 |
[Oracle] 연산자 및 별칭(alias) (0) | 2023.09.18 |
[Oracle] DDL 기초 및 간단한 예제(create, drop, alter) (0) | 2023.09.18 |
[Oracle] DML 기초 및 간단한 예제(insert, update, delete) (0) | 2023.09.18 |