Notificación

Este Centro de Ayuda se va a migrar a Google Cloud. Más información sobre la migración

CASE (de búsqueda)

Devuelve un resultado tras evaluar una lista de condiciones

Las instrucciones CASE evalúan una o varias condiciones y devuelven un resultado cuando se cumple la primera condición, o bien un resultado predeterminado si no se cumple ninguna.

Nota: La instrucción CASE puede ser CASE de búsqueda y CASE simple. Las instrucciones CASE de búsqueda te permiten usar una lógica más sofisticada, mientras que las instrucciones CASE simples son más fáciles de crear.

Consulta también IF.

Secciones de este artículo:

Ejemplo de uso

Un uso habitual de la expresión CASE es crear categorías o agrupaciones de datos. Por ejemplo, puedes crear una instrucción CASE como la que se incluye a continuación para agrupar valores de países seleccionados en una dimensión denominada Región de ventas:

CASE 
    WHEN Country IN ("USA","Canada","Mexico") THEN "North America" 
    WHEN Country IN ("England","France") THEN "Europe" 
    ELSE "Other" 
END

Sintaxis

CASE
    WHEN condition THEN result
    [WHEN condition THEN result]
    [...]
    [ELSE else_result]
END

Parámetros

  • condition: campo o expresión lógicos. Las cláusulas WHEN evalúan condition y devuelven el valor true si se cumple la condición especificada o, si no se cumple, el valor false.

  • result: puede ser un campo o una expresión de cualquier tipo. Cada cláusula WHEN debe corresponderse con una cláusula THEN, que especifica los resultados si WHEN condition se cumple. Si hay varias cláusulas WHEN, la instrucción CASE devuelve result de la primera condition que se cumple.

  • else_result (opcional): puede ser un campo o una expresión de cualquier tipo. La cláusula ELSE else_result especifica un resultado predeterminado para la instrucción CASE. Esta cláusula se devuelve si no se cumple ninguna cláusula WHEN. Si una instrucción CASE no tiene ninguna cláusula ELSE y tampoco se cumple ninguna cláusula WHEN, la instrucción CASE devuelve NULL.

Una instrucción CASE solo puede tener una cláusula ELSE.

Nota: Todas las cláusulas THEN de una instrucción CASE deben devolver el mismo tipo de datos. Por ejemplo, si la primera cláusula THEN devuelve datos de texto, las cláusulas THEN adicionales también deben devolver texto.

Cómo funciona la expresión CASE de búsqueda

Las instrucciones CASE de búsqueda comienzan con la palabra clave CASE y terminan con la palabra clave END. Entre estos elementos se incluyen varias secciones o cláusulas:

  • WHEN: condición que quieres evaluar. Puedes incluir varias cláusulas WHEN en una sola instrucción CASE.
  • THEN: el resultado que devuelve la expresión si se cumple la condición de la cláusula WHEN. La instrucción CASE debe contener una cláusula THEN por cada cláusula WHEN.
  • ELSE: Es opcional. Si no se cumple ninguna de las condiciones de las cláusulas WHEN, CASE devuelve el valor de la cláusula ELSE, o NULL si no se ha especificado ninguna cláusula ELSE.

CASE evalúa cada cláusula WHEN sucesiva y devuelve el primer resultado donde se cumple la condición. Las cláusulas WHEN restantes y el resultado ELSE no se evalúan. Si todas las condiciones WHEN son false o NULL, CASE devuelve el resultado ELSE o, si no hay ninguna cláusula ELSE, devuelve NULL.

Ejemplos

Comprobar la desigualdad

CASE WHEN Medium != "cpc" THEN "free" ELSE "paid" END
En situaciones sencillas, puedes usar la función IF.

Clasificar los valores de dimensiones numéricas en segmentos independientes

Por ejemplo, puedes dividir los pedidos en pequeños, medianos o grandes en función de la cantidad de artículos que incluyan:

    
CASE
    WHEN Amount < 20 THEN "Small"
    WHEN Amount >= 20 and Amount < 100 THEN "Medium"
    WHEN Amount >= 100 THEN "Large"
END
También puedes usar un campo calculado del tipo Grupo para crear grupos específicos de valores de dimensiones.

Evaluar una condición lógica AND

CASE 
    WHEN Country ISO Code = "US" AND Medium = "cpc" 
    THEN "US - Paid" 
    ELSE "other" 
END

Evaluar una condición lógica AND/OR

CASE 
    WHEN REGEXP_MATCH(Video Title, ".*Google Analytics*")
    AND is_livestream = TRUE 
    OR Video Length > 600 
    THEN "GA Livestream or long video" 
END

Devolver un campo o valor diferente en función de un valor de parámetro

Ejemplo 1: Devuelve una dimensión basada en el valor de parámetro seleccionado. Puedes utilizar esta técnica para permitir que los usuarios cambien la dimensión de desglose que usa un gráfico.

CASE 
    WHEN Breakdown = "Product Category" THEN Product Category 
    WHEN Breakdown = "Store" THEN Store 
END

Ten en cuenta que también puedes escribirlo con la sintaxis de CASE simple:

CASE Breakdown 
    WHEN "Product Category" THEN Product Category
    WHEN "Store" THEN Store
END

Ejemplo 2: Devuelve una métrica diferente en función de un valor de parámetro

CASE WHEN Show Adjusted Cost = TRUE THEN Cost + Adjustments ELSE Cost END

Instrucciones CASE anidadas

Puedes anidar instrucciones CASE para crear una lógica de bifurcación más compleja:

CASE WHEN REGEXP_CONTAINS(SKU, "Hats") THEN
    CASE WHEN Color = "blue"
        THEN "BLUE HAT" ELSE "JUST A HAT"
    END
    ELSE "NOT A HAT"
END

¿Te ha resultado útil esta información?

¿Cómo podemos mejorar esta página?
true
Novedades de Looker Studio

Descubre nuevas funciones y cambios recientes. Las notas de la versión de Looker Studio están disponibles en Google Cloud.

Búsqueda
Borrar búsqueda
Cerrar búsqueda
Menú principal
9671824232147840858
true
Buscar en el Centro de ayuda
true
true
true
true
true
102097
false
false