Sdílet prostřednictvím


PŘÍPAD

✅Eventstream prostředků infrastruktury Azure Stream Analytics ✅

Vyhodnotí seznam podmínek a vrátí jeden z více možných výsledných výrazů.

Výraz CASE má dva formáty:

  • Jednoduchý výraz CASE porovnává výraz se sadou jednoduchých výrazů k určení výsledku.

  • Hledaný výraz CASE vyhodnotí sadu logických výrazů k určení výsledku.

Oba formáty vyžadují argument ELSE.

Case lze použít v libovolném příkazu nebo klauzuli, která umožňuje platný výraz. Case můžete například použít ve výrazech, jako je SELECT a v klauzulích, jako je WHERE a HAVING.

Syntaxe

Jednoduchý výraz CASE:

CASE input_expression
     WHEN when_expression THEN result_expression [ ...n ] 
     ELSE else_result_expression
END  

Hledaný výraz CASE:

CASE  
     WHEN Boolean_expression THEN result_expression [ ...n ]
     ELSE else_result_expression  
END  

Argumenty

input_expression

Je výraz vyhodnocen při použití jednoduchého formátu CASE. Vyhodnocená hodnota se porovná s when_expression.

KDYŽ when_expression

Je výraz, ke kterému se input_expression porovnává při použití jednoduchého formátu CASE. Typy when_expressions nemusí nutně odpovídat.

KDYŽ boolean_expression

Je logický výraz vyhodnocen při použití vyhledávacího formátu CASE. Pokud se tento výraz vyhodnotí jako true, vrátí se odpovídající result_expression .

PAK result_expression

Je výraz vrácen, když se input_expression rovná when_expression (v jednoduchém formátu CASE) nebo když se boolean_expression vyhodnotí jako true (ve vyhledávacím formátu CASE).

ELSE else_result_expression

Je výraz vrácen, pokud se žádná z podmínek nevyhodnotila jako PRAVDA.

Návratový typ

Je typ nejvyšší priority ze sady typů v result_expression a else_result_expression.

Příklady

Použití příkazu Select s jednoduchým výrazem CASE:

  SELECT
    CASE vehicleType
      WHEN 'S' THEN 'Sedan'
      WHEN 'T' THEN 'Truck'
      WHEN 'V' THEN 'Van'
      ELSE NULL
    END as vehicleTypeName
  FROM vehicles

Výběr s hledaným výrazem CASE:

  SELECT
    CASE
      WHEN temperature < 60 THEN 'Alert'
      ELSE 'OK'
    END as currentStatus
  FROM sensor