이번에 다룰 내용은 다중 조건문이다.
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
실행결과
도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!
각 DBMS(oracle,mssql,mysql) 별 컬럼,필드 삭제 명령어 (0) | 2014.09.23 |
---|---|
오라클,MySQL,MSSQL 각 DBMS별 컬럼을 추가해보도록 하자 (0) | 2014.09.23 |
(MySQL,MS-SQL,ORACLE) DB에 존재하는 테이블이름 변경하기 (0) | 2014.09.22 |
DBMS별(ms-sql vs mysql vs oracle) 문자열 합치기 (0) | 2014.08.18 |