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