개발/Oracle

[Oracle] 오라클 case when 설명 사용법 예제 if else

TaeDy.I.T. 2023. 2. 3. 07:02
반응형

안녕하세요. 오늘은 오라클(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 예시

오라클(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절도 저번에 한번 설명 드렸었습니다.

모르시는 분들은 참고 하시면 될 것 같습니다.

https://nazzang19.tistory.com/21

 

[Oracle] 오라클 WITH 절 사용법 임시테이블

안녕하세요. 오늘은 오라클(Oracle) WITH절에 대해서 알아보겠습니다. @ WITH 절 정의 - 오라클(Oracle)9 이후 버전부터 사용 가능합니다. - 정의 해놓은 서브 쿼리라고 생각하시면 됩니다. - 임시테이블

nazzang19.tistory.com

 

위의 오라클(Oracle) case when 문 예시를 보면 SEX_CD라는 컬림이 1이면 '남자' 를

2이면 '여자'를 둘다 아니면 성별 판독 불가라는 결과를 리턴하게 작성해보았습니다.

위의 오라클(Oracle) case when 예시의 결과 값입니다.

오라클(Oracle) case when 예시 결과

 

SEX_NM이라는 컬럼에 예상대로 결과가 리턴되었습니다.

 

이상 오늘은 오라클(Oracle) case when에 대해서 알아보았습니다.

 

반응형