CASE deyimi

Şunun için geçerlidir:işaretli 'evet' Databricks Runtime 16.3 ve üstü

İlk olarak thenStmtN veya optN'e eşit olan expr için elseStmt'ı yürütür; eğer optNile eşleşen bir expr yoksa. Bu, basit durum deyimi olarak adlandırılır.

İlk thenStmtN, condNolarak değerlendirildiğinde true'ı yürütür, veya herhangi bir elseStmt, condNolarak değerlendirilmiyorsa true'ü yürütür. Bu, aranan durum ifadesi olarak adlandırılır.

Durum ifadeleri sonuç değerleri veriyorsa bkz CASE ifadesi

Bu deyim yalnızca bileşik deyimi içinde kullanılabilir.

Sözdizimi

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

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

Parametreler

  • ifade

    Karşılaştırmanın tanımlandığı tüm ifadeler.

  • opt

    expr ve diğer tüm optN ile en az ortak türe sahip bir ifade.

  • thenStmt

    Önceki koşul true ise çalıştırılacak bir SQL deyimi.

  • elseStmt

    hayır cond ise yürütülecek BIR SQL deyimi.true cond ya da false veya null hepsidir.

  • cond

    BOOLEAN ifadesi.

Koşullar sırayla değerlendirilir ve yalnızca opt veya condtrue olarak değerlendirildiğinde, ilk deyim kümesi yürütülür.

Örnekler

-- 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