• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    1. BEGIN ... END 복합 명령문 구문
    2. 레이블 구문
    3. DECLARE 구문
    4. 저장 프로그램 내의 변수
    5. 흐름 제어문
    1. CASE 구문
    2. IF 구문
    3. ITERATE 구문
    4. LEAVE 구문
    5. LOOP 구문
    6. REPEAT 구문
    7. RETURN 구문
    8. WHILE 구문
    6. 커서
    7. 조건의 처리
    7. 데이터베이스 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.6.5.1 CASE 구문

CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END CASE 

또는 :

 CASE
     WHEN search_condition THEN statement_list
     [WHEN search_condition THEN statement_list ] ...
     [ELSE statement_list ]
 END CASE

저장 프로그램의 CASE 문은 복잡한 조건절 구문을 구현합니다.

참고

여기에서 설명 된 CASE 명령문은 다른 CASE 식도 존재합니다. 섹션 12.4 "제어 흐름 함수" 를 참조하십시오. CASE 명령문은 ELSE NULL 절을 가질 수 없으며, END 가 아니라 END CASE 로 종료합니다.

첫 번째 구문의 경우 case_value 는 식입니다. 이 값은 각 WHEN 절의 when_value 식 중 하나가 같아 질 때까지 그 표현과 비교됩니다. 동일한 when_value 이 발견되면 해당 THEN 절 statement_list 가 실행됩니다. 어떤 when_value 도 동일하지 않은 경우 ELSE 절 statement_list 가 실행됩니다 (이 조항이 존재하는 경우).

NULL = NULL 은 false이므로이 구문을 NULL 과 동일한 지 여부를 테스트하는 데 사용할 수 없습니다. 섹션 3.3.4.6 "NULL 값 작업" 을 참조하십시오.

두 번째 구문의 경우 각 WHEN 절 search_condition 표현식 중 하나가 true가 될 때까지 그식이 평가 중 하나가 true가되는 시점에서 해당 THEN 절 statement_list 가 실행됩니다. 어떤 search_condition 도 동일하지 않은 경우 ELSE 절 statement_list 가 실행됩니다 (이 조항이 존재하는 경우).

어떤 when_value 도 search_condition 도 테스트 된 값과 일치하지 아니하고 CASE 문에 ELSE 절이 포함되지 않은 경우 Case not found for CASE statement 오류가 발생합니다.

각 statement_list 는 하나 이상의 SQL 문으로 구성됩니다. 빈 statement_list 는 허용되지 않습니다.

어떤 WHEN 절에서도 값이 일치하지 않는 상황을 처리하려면 다음 예제와 같이 빈 BEGIN ... END 블록을 포함 ELSE 를 사용합니다. (여기의 ELSE 절에서 사용되는 들여 쓰기 투명성만을 목적으로하고 있으며, 그 이외의 의미는 없습니다.)

 DELIMITER |

 CREATE PROCEDURE p ()
   BEGIN
     DECLARE v INT DEFAULT 1;

     CASE v
       WHEN 2 THEN SELECT v;
       WHEN 3 THEN SELECT 0;
       ELSE
         BEGIN
         END;
     END CASE;
   END;
   |


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved