코드저장소/sql
ORACLE/MYSQL/MSSQL 관계없이 CASE WHEN THEN ELSE END 사용하기
개발로짜
2014. 10. 8. 23:44
안녕하세요 개발로짜입니다 ^^
이번포스팅은 DB 조건문을 주었을 경우 사용하는 CASE 문인대요
제목에서 아시다시피 주로사용하는 Oracle 이나 MySQL, MS-SQL 모두 적용 가능한 다중 조건문입니다.
일반 개발에서 사용하는
switch 문이나 if문과 비슷하다고 보시면 되실거예요
오라클과 MySQL에는 참 또는 거짓을 기술할수 있는...
쉽게말해서 if else 문이 별도로 존재하는데
요건 다음 포스팅때 작성하도록 하겠습니다.
그럼 우선적으로 사용 구문법부터 보시겠습니다.
CASE WHEN 기본 사용법
CASE WHEN 조건 THEN '대체값' WHEN 조건 THEN '대체값' ELSE 'WHEN 조건에 해당안될경우의 기본값' END
사용문법은 위와같습니다.
말씀드린 switch 문이랑 if 문이랑 비슷하죠?
그럼 어짜피 모든 DBMS에 적용가능한 문법이니
아무거나 정해서 CASE문을 적용해보도록 하겠습니다.
우선 저는 MySQL DB로 적용해볼까 합니다.
아무 테이블에 존재하는 데이터를 변경해보도록 하겠습니다.
저같은 경우 member 테이블의 데이터들을 조회한 결과
상단처럼 member_name 컬럼에 중복값이 들어가 있습니다.
'이순신','홍길동'
한글을 조건절에 들어가는것은 좋지 않습니다만
샘플삼아 작성하는것이므로 ...
조건
member 테이블의 member_name의 결과값이 '이순신'이면 '중복1' , '홍길동'이면 '중복2', 그외에는 '중복아님' 출력
위 조건으로 실행쿼리를 작성해보도록 하겠습니다.
CASE문 포함된 실행쿼리
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 개발로짜