다음을 통해 공유


CASE 문

적용 대상:체크 표시된 예 Databricks Runtime 16.3 이상

중요하다

이 기능은 공개 프리뷰입니다.

첫 번째 thenStmtNoptN와 같을 경우 expr를 실행하고, 일치하는 elseStmtoptN가 아닐 경우 expr을 실행합니다. 이를 단순 사례 문이라고 합니다.

첫 번째로 thenStmtN이 평가되어 condN인 경우 true을 실행하거나, 어떤 elseStmtcondN로 평가되지 않는 경우 true. 이를 검색된 사례라고 합니다.

결과 값을 생성하는 사례 식은 CASE 식 참조하세요.

이 문장은 복합 문장안에서만 사용할 수 있습니다.

통사론

CASE expr
  { WHEN opt THEN { thenStmt ; } [...] } [...]
  [ ELSE { elseStmt ; } [...] ]
END CASE

CASE
  { WHEN cond THEN { thenStmt ; } [...] } [...]
  [ ELSE { elseStmt ; } [...] ]
END CASE

매개 변수

  • expr

    비교를 위한 정의가 있는 모든 식입니다.

  • opt

    가장 적은 공통 형식과 다른 모든 expr 형식을 갖춘 optN 표현입니다.

  • thenStmt

    이전 조건이 .인 경우 실행할 SQL 문입니다 true.

  • elseStmt

    없는 cond 경우 실행할 SQL 문입니다 true. 즉, 모두 condfalse 또는 null.

  • cond

    BOOLEAN 식입니다.

조건은 순서대로 평가되며, opt 또는 condtrue로 평가되는 첫 번째 문 집합만 실행됩니다.

예제

-- a simple case statement
> BEGIN
    DECLARE choice INT DEFAULT 3;
    DECLARE result STRING;
    CASE choice
      WHEN 1 THEN
        VALUES ('one fish');
      WHEN 2 THEN
        VALUES ('two fish');
      WHEN 3 THEN
        VALUES ('red fish');
      WHEN 4 THEN
        VALUES ('blue fish');
      ELSE
        VALUES ('no fish');
    END CASE;
  END;
 red fish

-- A searched case statement
> BEGIN
    DECLARE choice DOUBLE DEFAULT 3.9;
    DECLARE result STRING;
    CASE
      WHEN choice < 2 THEN
        VALUES ('one fish');
      WHEN choice < 3 THEN
        VALUES ('two fish');
      WHEN choice < 4 THEN
        VALUES ('red fish');
      WHEN choice < 5 OR choice IS NULL THEN
        VALUES ('blue fish');
      ELSE
        VALUES ('no fish');
    END CASE;
  END;
 red fish