CASO
Descripción
CASE
es una función de fila que evalúa cada fila del conjunto de datos de acuerdo con una o varias condiciones de entrada y presenta el resultado especificado cuando se cumplen las condiciones de entrada.Sintaxis
CASE
WHEN
input_condition
[AND
|OR
input_condition
]THEN
output_expression
[...] [ELSE
other_output_expression
] END
Valor devuelto
Devuelve un valor por fila del mismo tipo que la expresión de salida. Todas las expresiones de resultado deben devolver el mismo tipo de campo.
Si hay varias expresiones de resultado que devuelven distintos tipos de campo, deberá incluir toda su
CASE
expresión en una de las funciones de conversión de tipo de campo, como TO_INT
, para convertir explícitamente todos los valores de salida a un tipo de campo en particular.Parámetros de entrada
- WHENinput_condition
- Es obligatorio. ElWHENLa palabra clave se utiliza para especificar una o varias expresiones booleanas (consulte los operadores condicionales admitidos). Si un valor de entrada cumple la condición, se aplica la expresión de salida. Las condiciones de entrada pueden incluir otras funciones de fila en su expresión, pero no pueden contener funciones de resumen ni expresiones de medida. Puede utilizar elANDoORpalabras clave para combinar varias condiciones de entrada.
- THENexpresión_de_salida
- Es obligatorio. ElTHENLa palabra clave se utiliza para especificar una expresión de salida cuando se cumplen las condiciones especificadas. Las expresiones de resultado pueden incluir otras funciones de fila en su expresión, pero no pueden contener funciones de resumen ni expresiones de medida.
- ELSEother_output_expression
- Opcional. ElELSELa palabra clave se puede utilizar para especificar una expresión de resultado alternativa que se utilizará cuando no se cumplan las condiciones especificadas. Si unELSEno se ha proporcionado la expresión,ELSE NULLes el valor por defecto.
- FIN
- Es obligatorio. Indica el final deCASEproceso de función
Ejemplos
Convierta los valores de la columna
de edad
en agrupaciones basadas en rango (binning):CASE WHEN [age] <= 25 THEN "0-25" WHEN [age] <= 50 THEN "26-50" ELSE "over 50"
END
Transforme los valores de la columna
de género
de una cadena a otra:CASE WHEN [gender] = "M" THEN "Male" WHEN [gender] = "F" THEN
"Female" ELSE "Unknown" END
La columna
de vehículo
contiene los siguientes valores: camión, autobús, automóvil, scooter, familiar, bicicleta, triciclo y motocicleta. El siguiente ejemplo convierte varios valores de la columna de vehículo
en un solo valor:CASE WHEN [vehicle] in ("bike","scooter","motorcycle") THEN "two-wheelers" ELSE
"other" END