안녕하세요 개발로짜입니다 ^^
이번포스팅은 DB 조건문을 주었을 경우 사용하는 CASE 문인대요
제목에서 아시다시피 주로사용하는 Oracle 이나 MySQL, MS-SQL 모두 적용 가능한 다중 조건문입니다.
일반 개발에서 사용하는
switch 문이나 if문과 비슷하다고 보시면 되실거예요
오라클과 MySQL에는 참 또는 거짓을 기술할수 있는...
쉽게말해서 if else 문이 별도로 존재하는데
요건 다음 포스팅때 작성하도록 하겠습니다.
그럼 우선적으로 사용 구문법부터 보시겠습니다.
CASE WHEN 조건 THEN '대체값' WHEN 조건 THEN '대체값' ELSE 'WHEN 조건에 해당안될경우의 기본값' END
사용문법은 위와같습니다.
말씀드린 switch 문이랑 if 문이랑 비슷하죠?
그럼 어짜피 모든 DBMS에 적용가능한 문법이니
아무거나 정해서 CASE문을 적용해보도록 하겠습니다.
우선 저는 MySQL DB로 적용해볼까 합니다.
아무 테이블에 존재하는 데이터를 변경해보도록 하겠습니다.
저같은 경우 member 테이블의 데이터들을 조회한 결과
상단처럼 member_name 컬럼에 중복값이 들어가 있습니다.
'이순신','홍길동'
한글을 조건절에 들어가는것은 좋지 않습니다만
샘플삼아 작성하는것이므로 ...
member 테이블의 member_name의 결과값이 '이순신'이면 '중복1' , '홍길동'이면 '중복2', 그외에는 '중복아님' 출력
위 조건으로 실행쿼리를 작성해보도록 하겠습니다.
SELECT member_name, CASE WHEN member_name = '이순신' THEN '중복1' WHEN member_name = '홍길동' THEN '중복2' ELSE '중복아님' END AS result FROM member
위와같이 정상적으로 CASE문이 사용하여 결과값이 나왔습니다!!!
MySQL이 아니여도 MS-SQL 또는 오라클에서도 구문을 동일 하게 사용할 수 있답니다~
by 개발로짜
MySQL과 MSSQL의 시퀀스생성 및 초기화 하는방법에 대해서 알아보도록 하자 (0) | 2014.10.14 |
---|---|
MySQL- GROUP_CONCAT 함수로 세로로 출력된 결과를 하나의 컬럼에 가로로 출력하기 (0) | 2014.10.13 |
쿼리의 조건문 사용시 oracle에는 decode가있고 mysql에는 if가 있다 (0) | 2014.10.09 |
DBMS별 기존테이블 SELECT해서 새 테이블에 INSERT하여 데이터 일괄처리하기(oracle,mssql,mysql) (4) | 2014.10.08 |
DBMS 별로 (oracle,mysql,mssql) 널값 처리하기 (0) | 2014.10.07 |