La función CASE evalúa una expresión y devuelve un valor u otro en función del resultado obtenido.
CASE <expresión>
WHEN <valor1> THEN <resultado1>
WHEN <valor2> THEN <resultado2>...
ELSE <resultado_por_defecto>
END
- expresión: expresión a evaluar
- valor1, valor2, etc.: valores con los que comparar el resultado de la expresión
- resultado1, resultado2, etc.: resultados a devolver cuando el resultado de la expresión coincida con el valor correspondiente
- resultado_por_defecto: valor por defecto a devolver si ninguno de los valores coincide con el resultado de la expresión
La función CASE devuelve un valor perteneciente a la lista de resultados o el resultado por defecto.
Si en nuestro modelo de datos tenemos un campo Number of Children que contiene el número de hijos de nuestros clientes y queremos convertir sus valores en una cadena de texto que asocie al valor n el texto "n hijos", podríamos hacerlo con el siguiente campo calculado:
Número de hijos =
CASE [Number of Children]
WHEN 0 THEN "Sin hijos"
WHEN 1 THEN "Un hijo"
WHEN 2 THEN "Dos hijos"
ELSE "Más de dos hijos"
END
Ahora, si llevamos el campo Number of Children (como dimensión) y el campo calculado al estanto de filas, obtendríamos el siguiente resultado: