Expresiones condicionales

Puede utilizar expresiones condicionales para crear expresiones que conviertan valores.

Las expresiones condicionales descritas en esta sección son bloques que sirven para crear expresiones condicionales que convierten un valor de un formato a otro.

Siga estas reglas:

  • En las sentencias CASE, AND tiene prioridad sobre OR.
  • Las cadenas deben estar entre comillas simples.
Expresión Ejemplo Descripción Sintaxis

CASE (If)

CASE

WHEN score-par < 0 THEN 'Bajo par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Doble Bogey'

ELSE 'Triple bogey o peor'

END

Evalúa cada condición WHEN y, si se cumple, asigna el valor a la expresión THEN correspondiente.

Si no se cumple ninguna condición WHEN, se asigna el valor por defecto especificado en la expresión ELSE. Si no se especifica ninguna expresión ELSE, el sistema agregará automáticamente ELSE NULL.

Nota: Consulte Mejores prácticas para el uso de sentencias CASE en análisis y visualizaciones.

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Birdie en el par 6'

WHEN -4 THEN 'Debe ser Tiger'

WHEN -3 THEN 'Tres bajo par'

WHEN -2 THEN 'Dos bajo par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Doble Bogey'

ELSE 'Triple bogey o peor'

END

También se conoce como CASE (Lookup). Se examina el valor de la primera expresión y, a continuación, de las expresiones WHEN. Si la primera expresión coincide con cualquier expresión WHEN, asigna el valor de la expresión THEN correspondiente.

Si no coincide ninguna de las expresiones WHEN, se le asigna el valor por defecto especificado en la expresión ELSE. Si no se especifica ninguna expresión ELSE, el sistema agregará automáticamente ELSE NULL.

Si la primera expresión coincide con una expresión en varias cláusulas WHEN, solo se asignará la expresión posterior a la primera coincidencia.

Nota Consulte Mejores prácticas para el uso de sentencias CASE en análisis y visualizaciones.

CASE expr1 WHEN expr2 THEN expr3 ELSE expr4 END

IfCase > ELSE

-

-

ELSE [expr]

IfCase > IFNULL

-

-

IFNULL([expr], [value])

IfCase > NULLIF

-

-

NULLIF([expr], [expr])

IfCase > WHEN

-

-

WHEN [Condition] THEN [expr]

IfCase > CASE

-

-

CASE WHEN [Condition] THEN [expr] END

SwitchCase > ELSE

-

-

ELSE [expr]

SwitchCase >IFNULL

-

-

IFNULL([expr], [value])

SwitchCase > NULLIF

-

-

NULLIF([expr], [expr])

SwitchCase > WHEN

-

-

WHEN [Condition] THEN [expr]

Mejores prácticas para utilizar sentencias CASE en análisis y visualizaciones

Cuando utilice sentencias CASE en informes y libros de trabajo, debe tener en cuenta las columnas de los informes y el orden de adición, ya que afectan a la manera de calcular las expresiones y los subtotales.

  • En general, al utilizar expresiones CASE, asegúrese de que las columnas utilizadas en la expresión están incluidas en el informe.

  • Si el orden de adición es importante, cambie la regla de adición del informe de Por defecto a Suma.
  • Si hay que evaluar una condición antes de que se calcule la adición (por ejemplo, si la columna filtrada no se muestra en el informe), utilice la función FILTER.

Ejemplo

En este ejemplo se usan datos para Marca, Tipo de producto e Ingresos.
A continuación se muestra la descripción de GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png
.png

Para aplicar una condición para definir los ingresos de Camera en 0, cree esta expresión condicional: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

Cuando Product_Type se excluye del informe, no hay datos disponibles para evaluar la expresión porque contiene Product_Type y los resultados son:
A continuación se muestra la descripción de GUID-22873F41-3679-45DF-821D-4167594FE069-default.png
.png

Al agregar PRODUCT_TYPE al informe y ajustar la adición del informe en SUM, el resultado se agrega después de que se calculen los valores del nivel base:
A continuación se muestra la descripción de GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png
.png

Una alternativa al uso de CASE es utilizar un filtro de expresión: FILTER(Revenue using Product_Type != ‘Camera’). La expresión se calcula con independencia de las columnas del informe y las adiciones se aplican después del cálculo:
A continuación se muestra la descripción de GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png
.png