DB/MySQL vs MS-SQL vs ORACLE

(MySQL,MS-SQL,ORACLE) case when then else end 사용하여 조건문 다루기

개발로짜 2014. 8. 24. 13:55

이번에 다룰 내용은 다중 조건문이다.


MySQL에는 IF 함수


2014/08/24 - [DB/MySQL] - MySQL - if ~ else 조건문 사용하기 : if


ORACLE에는 DECODE 함수 


2014/08/24 - [DB/Oracle] - Oracle - if ~ else 조건문 사용하기 : DECODE


같은 단일 조건문에 대한 함수가 존재하지만 다중 조건일 경우에는 CASE문을 사용하도록 하자


CASE문의 경우는 DBMS 종류 상관없이 사용이 가능하다



CASE문 사용법


CASE

   WHEN 조건문1

       THEN '치환값1'

   WHEN 조건문2

      THEN '치환값2'

   .

   .

   ELSE '상위조건이 모두 아닐경우 DEFAULT 치환값'

END 




공통 테스트 테이블 생성 및 데이터 INSERT


CREATE TABLE case_table(
  msg varchar(1)
);
insert into case_Table
values('1');
insert into case_Table
values('2');
insert into case_Table
values('3');
insert into case_Table
values('2');
insert into case_Table
values('2');
insert into case_Table
values('3');
insert into case_Table
values('3');
insert into case_Table
values('2');
insert into case_Table
values('1');

위의 생성한 데이터에 따른 조건은 다음과 같다.


msg 컬럼의 데이터값이


1일 경우 : 어서오세요

2일 경우 : 반갑습니다

3일 경우 : 안녕히가세요


라는 값으로 치환을 하도록 하겠음


case문 실행 쿼리


SELECT msg
      ,CASE 
          WHEN msg = '1'
          THEN '어서오세요'
         WHEN msg = '2'
          THEN '반갑습니다'
		 WHEN msg = '3'
          THEN '안녕히가세요'
       END msg_str
FROM case_table

실행결과




슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!