본문 바로가기
데이터베이스/oracle

[Oracle] CASE WHEN 표현식

by 디찌s 2020. 11. 18.
728x90
반응형

CASE문 사용법

CASE문은 다른 프로그래밍 언어들에서 사용하는 그 CASE와 비슷하다

 

CASE문에는 사용법은 같지만 조건이 다른 2가지 방식이 존재하며, 값에 따라 결과값을 RETURN하는 방식과 조건에 따라 결과값을 RETURN하는 방식이 있다.

 

 

값의 따라 결과값을 RETURN하는 방식

CASE 대상값 WHEN 값1 THEN 결과1
			WHEN 값2 THEN 결과2
                  .
                  .
                  .
            WHEN 값n TEHN 결과m END;

 

예제 1

 

 

 

 

위와같은 게시판 글들이 모여있을때 BBS_ID에 마지막 숫자를 통해 게시판에 성격과 글제목을 알고싶다면.

 

SELECT NTT_SJ,CASE SUBSTR(bbs_id,20,1) WHEN '1' THEN '자유게시판' 
WHEN '2' THEN '고객게시판' 
WHEN '3' THEN '질문게시판' 
END AS BOARD FROM comtnbbs;

 

BBS_ID의 20번째자리가 1,2,3이면 각각 자유게시판,고객게시판,질문게시판으로 설정하여 데이터를 출력하였다.

 

조건문의 따라 결과값을 RETURN하는 방식

생성 날짜가 한달전이면 삭제할려고할때 그 한달전 게시판을 구하는 쿼리는 아래와 같다

SELECT NTT_SJ,CASE  WHEN FRST_REGIST_PNTTM <= DATE('2020-10-18') THEN '삭제요망'  
END AS del FROM comtnbbs;

728x90
반응형

댓글