CASE 함수

CASE는 두 가지 형식(simple-when 형식과 searched-when 형식)의 복합 함수입니다. 두 형식에서 CASE는 후속 처리의 경로를 제어하는 결과 값을 리턴합니다.

구문

CASE의 두 형식 모두 WHEN절에 정의된 규칙 세트에 따라 값을 리턴합니다.

단순 WHEN 형식에서 source_value는 일치를 찾을 때까지 각 test_value와 비교됩니다. CASE 함수의 결과는 해당 result_value의 값입니다. 따라서 source_value의 데이터 유형은 각 test_value의 데이터 유형과 비교할 수 있어야 합니다.

CASE 함수에는 최소한 하나 이상의 WHEN이 있어야 합니다. ELSE는 선택적입니다. 디폴트 ELSE 표현식은 널(null)입니다. CASE 표현식은 END로 구분됩니다. 테스트 값은 리터럴 값일 필요가 없습니다.

searched-when절 버전은 비슷하지만 여러 가지 다른 값들을 테스트할 수 있도록 추가 유연성이 있습니다.

다음 예에서는 단순 WHEN절이 포함된 CASE 함수를 보여줍니다. 이 예에서, CASE는 CASE 키워드 옆에 지정된 하나의 변수에 의해서만 판별할 수 있습니다.
  DECLARE CurrentMonth CHAR;
    DECLARE MonthText CHAR;
    SET CurrentMonth = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 6 FOR 2);

    SET MonthText = 
      CASE CurrentMonth
            WHEN '01' THEN 'January' 
            WHEN '02' THEN 'February'
            WHEN '03' THEN 'March' 
            WHEN '04' THEN 'April' 
            WHEN '05' THEN 'May' 
            WHEN '06' THEN 'June' 
            ELSE 'Second half of year' 
      END
다음 예에서는 searched-when-clause이 포함된 CASE 함수를 보여줍니다. 이 예는 계속 CurrentMonth 변수로 판별됩니다.
  DECLARE CurrentMonth CHAR;
    DECLARE MonthText CHAR;
    SET CurrentMonth = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 6 FOR 2);

    SET MonthText = 
      CASE  
            WHEN Month = '01' THEN 'January' 
            WHEN Month = '02' THEN 'February'
            WHEN Month = '03' THEN 'March' 
            WHEN Month = '04' THEN 'April' 
            WHEN Month = '05' THEN 'May' 
            WHEN Month = '06' THEN 'June' 
            ELSE 'Second half of year' 
      END
검색된 WHEN절에서, 결과를 판별하기 위해 WHEN절에서 다른 변수를 사용할 수 있습니다. 다음의 검색된 WHEN절 예에서 이를 보여줍니다.
  DECLARE CurrentMonth CHAR;
    DECLARE CurrentYear CHAR;
    DECLARE MonthText CHAR;
    SET CurrentMonth = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 6 FOR 2);
    SET CurrentYear = SUBSTRING(InputBody.Invoice.InvoiceDate FROM 1 FOR 4);

    SET MonthText = 
       CASE 
            WHEN CurrentMonth = '01' THEN 'January'
            WHEN CurrentMonth = '02' THEN 'February'
            WHEN CurrentMonth = '03' THEN 'March'
            WHEN CurrentYear = '2000' THEN 'A month in the Year 2000'
            WHEN CurrentYear = '2001' THEN 'A month in the Year 2001'
            ELSE 'Not first three months of any year or a month in the Year 2000 or 2001'
     END;
관련 개념
ESQL 개요
관련 태스크
ESQL 개발
관련 참조
구문 다이어그램: 사용 가능한 유형
복합 ESQL 함수
MOVE문
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak05600_