[Oracle] 오라클 case when 설명 사용법 예제 if else
안녕하세요. 오늘은 오라클(Oracle) case when에 대해서 알아보겠습니다.
오라클(Oracle) case when은 쉽게 말해서 자바의 if else 문과 같다고 생각하시면 됩니다.
오라클(Oracle)에 if 처럼 사용할 수 있는 DECODE라는 함수가 존재 하지만 조건이 복잡해지면 사용하기도 어렵고 가독성이 떨어집니다.
일단 오라클(Oracle) DECODE라는 함수는 지난번에 설명 한번 드렸습니다.
https://nazzang19.tistory.com/11
[Oracle] DECODE 사용법 (if else) 디코드
오늘은 오라클 디코드 함수에 대해 알아보겠습니다. @ DECODE란? - 조건을 걸어 원하는 원하는 출력 값을 리턴해주는 함수이다. - 프로그래밍에서 if else와 비슷하다. - CASE 함수와 비슷하다. @ DECODE
nazzang19.tistory.com
여기로 가시면 참고 가능하십니다.
오늘은 오라클(Oracle)의 if문 DECODE함수와 다른 case when에 대해 설명합니다.
@ 오라클(Oracle) case when 사용법
CASE WHEN 조건1 THEN 조건1의 결과1
WHEN 조건2 THEN 조건2의 결과2
WHEN 조건3 THEN 조건3의 결과3
ELSE 모든 조건 불만족 결과4
END AS 컬럼명;
위와 같은 문법으로 사용하시면 됩니다.
바로 예시로 넘어 가보겠습니다.
@ 오라클(Oracle) case when 예시
WITH TEMP_USER AS (
SELECT 1 AS SEQ, 'a' AS ID, '홍길동' AS NAME, 32 AS AGE, 1 AS SEX_CD FROM DUAL UNION ALL
SELECT 2 AS SEQ, 'b', '홍길순', 62, 2 FROM DUAL UNION ALL
SELECT 3 AS SEQ, 'c', '김철수', 52, 1 FROM DUAL UNION ALL
SELECT 4 AS SEQ, 'd', '김영희', 45, 2 FROM DUAL UNION ALL
SELECT 5 AS SEQ, 'e', '강철진', 17, 1 FROM DUAL UNION ALL
SELECT 6 AS SEQ, 'f', '권용태', 26, 1 FROM DUAL UNION ALL
SELECT 7 AS SEQ, 'g', '김지은', 24, 2 FROM DUAL UNION ALL
SELECT 8 AS SEQ, 'h', '서석대', 28, 1 FROM DUAL UNION ALL
SELECT 9 AS SEQ, 'i', '김진민', 18, 2 FROM DUAL UNION ALL
SELECT 10 AS SEQ, 'j', '나호철', 9, 0 FROM DUAL
)
SELECT SEQ
, ID
, NAME
, AGE
, SEX_CD
, CASE WHEN SEX_CD = '1' THEN '남자'
WHEN SEX_CD = '2' THEN '여자'
ELSE '성별 판독 불가'
END AS SEX_NM
FROM TEMP_USER;
오라클(Oracle) WITH절로 TEMP_USER이라는 임시테이블을 만들고 임시데이터를 만들고 예시를 만들어 보았습니다.
오라클(Oracle) WITH절도 저번에 한번 설명 드렸었습니다.
모르시는 분들은 참고 하시면 될 것 같습니다.
[Oracle] 오라클 WITH 절 사용법 임시테이블
안녕하세요. 오늘은 오라클(Oracle) WITH절에 대해서 알아보겠습니다. @ WITH 절 정의 - 오라클(Oracle)9 이후 버전부터 사용 가능합니다. - 정의 해놓은 서브 쿼리라고 생각하시면 됩니다. - 임시테이블
nazzang19.tistory.com
위의 오라클(Oracle) case when 문 예시를 보면 SEX_CD라는 컬림이 1이면 '남자' 를
2이면 '여자'를 둘다 아니면 성별 판독 불가라는 결과를 리턴하게 작성해보았습니다.
위의 오라클(Oracle) case when 예시의 결과 값입니다.

SEX_NM이라는 컬럼에 예상대로 결과가 리턴되었습니다.
이상 오늘은 오라클(Oracle) case when에 대해서 알아보았습니다.