CASE (Analisi di flusso di Azure)

Valuta un elenco di condizioni e restituisce una tra più espressioni di risultato possibili.

L'espressione CASE ha due formati:

  • L'espressione CASE semplice confronta un'espressione con un set di espressioni semplici per determinare il risultato.

  • L'espressione CASE avanzata valuta un set di espressioni booleane per determinare il risultato.

Entrambi i formati richiedono un argomento ELSE.

L'espressione CASE può essere utilizzata in qualsiasi istruzione o clausola che consenta un'espressione valida. Ad esempio, è possibile usare CASE in espressioni quali SELECT e in clausole quali WHERE ed HAVING.

Sintassi

Espressione CASE semplice:

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

Espressione CASE cercata:

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

Argomenti

input_expression

Espressione valutata quando viene utilizzato il formato CASE semplice. Il valore valutato viene confrontato con il when_expression.

WHEN when_expression

Espressione a cui input_expression viene confrontata quando si usa il formato CASE semplice. I tipi del when_expressions non devono necessariamente corrispondere.

QUANDO boolean_expression

Espressione booleana valutata quando si usa il formato CASE ricercato. Se questa espressione restituisce true, viene restituita la result_expression corrispondente.

THEN result_expression

L'espressione viene restituita quando input_expression è uguale a when_expression (nel formato CASE semplice) o quando boolean_expression restituisce true (nel formato CASE cercato).

ELSE else_result_expression

Espressione restituita se nessuna delle condizioni valutate su TRUE.

Tipo restituito

È il tipo di precedenza più alto dal set di tipi in result_expression e else_result_expression.

Esempio

Uso di selezionare con un'espressione CASE semplice:

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

Uso della selezione con l'espressione CASE cercata:

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