CASE (Azure Stream Analytics)

Avalia uma lista de condições e devolve uma das múltiplas expressões de resultados possíveis.

A expressão CASE tem dois formatos:

  • A expressão CASE simples compara uma expressão a um conjunto de expressões simples para determinar o resultado.

  • A expressão CASE pesquisada avalia um conjunto de expressões booleanas para determinar o resultado.

Ambos os formatos requerem um argumento ELSE.

O CASE pode ser utilizado em qualquer instrução ou cláusula que permita uma expressão válida. Por exemplo, pode utilizar CASE em expressões como SELECT e em cláusulas como WHERE e HAVING.

Syntax

Expressão CASE simples:

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

Expressão CASE pesquisada:

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

Argumentos

input_expression

A expressão é avaliada quando é utilizado o formato CASE simples. O valor avaliado é comparado com o when_expression.

QUANDO when_expression

É a expressão à qual input_expression é comparada ao utilizar o formato CASE simples. Os tipos de when_expressions não têm necessariamente de corresponder.

QUANDO boolean_expression

A expressão booleana é avaliada ao utilizar o formato CASE pesquisado. Se esta expressão for avaliada como verdadeira, será devolvida a result_expression correspondente.

EM SEGUIDA, result_expression

A expressão é devolvida quando input_expression é igual a when_expression (no formato CASE simples) ou quando boolean_expression é avaliada como verdadeira (no formato CASE pesquisado).

ELSE else_result_expression

A expressão é devolvida se nenhuma das condições avaliadas como VERDADEIRO.

Tipo de retorno

É o tipo de precedência mais elevado do conjunto de tipos em result_expression(s) e else_result_expression.

Exemplos

Utilizar a opção Selecionar com uma expressão CASE simples:

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

Utilizar a opção Selecionar com a expressão CASE pesquisada:

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