MSSQL 에서 제공되는 CASE 문은 IF ~ ELSE 문과 기능이 흡사한 아주 유용한 명령어로서 기본형식은 아래와 같습니다.
CASE WHEN Boolean_expression1 THEN result_expression1 WHEN Boolean_expression2 THEN result_expression2 [...n] ELSE else_result_expression END
위의 WHEN 과 THEN 문 사이에 있는 Boolean_expression1 이 '참' 이면 THEN 문 이하에 있는 result_expression1 이 실행됩니다. 마찬가지로 Boolean_expression2 가 '참'이면 result_expression2 가 실행됩니다. WHEN ... THEN 문은 대괄호에 있는 n 만큼 반복 가능합니다. 이도 저도 아닌 경우에 ELSE 이하에 있는 else_result_expression 이 실행됩니다.
아래의 예제를 보시면 쉽게 이해가 가능하실 겁니다.
-- CASE WHEN THEN 문 예제 SELECT cus_id, CASE WHEN substring(jumin, 7, 1) = '1' THEN '남자' WHEN substring(jumin, 7, 1) = '2' THEN '여자' ELSE '미등록' END AS '성별' FROM Customer
위의 예제에서는 Customer 테이블에서 cus_id 컬럼과 jumin 컬럼을 가져오고 있습니다. 그런데 jumin 컬럼의 모든 내용을 가져오는 것이 아니라 substring 함수를 이용해서 7번째에 있는 한개의 문자만 가져오고 있습니다. 이 가져온 값이 '1' 인 경우에는 '남자' 를 '2'인 경우에는 '여자' 를 출력합니다. 해당사항이 없을 경우에는 '미등록' 을 출력합니다.
쉽게 요약하면 아래와 같이 정리될 수 있습니다.
CASE WHEN 조건1 THEN 조건1이 참이면 실행 WHEN 조건2 THEN 조건2가 참이면 실행 ... [when 문은 반복가능] ELSE 조건1,2...n 에 맞지 않으면 실행 END
위에서 ELSE 문은 생략 가능합니다.
작성자: 다자래(mfcchang@naver.com) 웹제작 토탈 커뮤니티 http://www.webmadang.net