Share via


CASE (Azure Stream Analytics)

Evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles.

La expresión CASE tiene dos formatos:

  • La expresión CASE sencilla compara una expresión con un conjunto de expresiones sencillas para determinar el resultado.

  • La expresión CASE buscada evalúa un conjunto de expresiones booleanas para determinar el resultado.

Ambos formatos requieren un argumento ELSE.

CASE se puede utilizar en cualquier instrucción o cláusula que permite una expresión válida. Por ejemplo, puede usar CASE en expresiones como SELECT y en cláusulas como WHERE y HAVING.

Sintaxis

Expresión CASE simple:

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

Expresión CASE buscada:

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

Argumentos

input_expression

Es la expresión evaluada cuando se utiliza el formato CASE sencillo. El valor evaluado se compara con el when_expression.

WHEN when_expression

Es la expresión a la que se compara input_expression al usar el formato CASE simple. Los tipos del when_expressions no tienen que coincidir necesariamente.

WHEN boolean_expression

Es la expresión booleana evaluada al usar el formato CASE buscado. Si esta expresión se evalúa como true, se devuelve el result_expression correspondiente.

THEN result_expression

Es la expresión devuelta cuando input_expression es igual a when_expression (en el formato CASE simple) o cuando boolean_expression se evalúa como true (en el formato CASE buscado).

ELSE else_result_expression

Es la expresión devuelta si ninguna de las condiciones evaluadas como TRUE.

Tipo de valor devuelto

Es el tipo de prioridad más alto del conjunto de tipos de result_expression y else_result_expression.

Ejemplos

Usar select con una expresión CASE simple:

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

Uso de select con la expresión CASE buscada:

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