Funciones condicionales
importante
Amazon S3 Select ya no está disponible para los nuevos clientes. Los clientes actuales de Amazon S3 Select pueden seguir utilizando la característica de la forma habitual. Más información
Amazon S3 Select admite las siguientes funciones condicionales.
CASE
La expresión CASE es una expresión condicional similar a las instrucciones if/then/else que se encuentran en otros lenguajes. CASE se utiliza para especificar un resultado cuando hay varias condiciones. Existen dos tipos de expresiones CASE: simple y buscada.
En expresiones CASE simples, una expresión se compara con un valor. Cuando hay una coincidencia, se aplica la acción especificada en la cláusula THEN. Si no se encuentra ninguna coincidencia, se aplica la acción en la cláusula ELSE.
En las expresiones CASE buscadas, cada CASE se evalúa según una expresión booleana y la instrucción CASE devuelve el primer CASE que coincida. Si no hay ninguna coincidencia de CASE entre las cláusulas WHEN, se devuelve la acción en la cláusula ELSE.
Sintaxis
nota
Actualmente, Amazon S3 Select no admite ORDER BY ni consultas que contienen líneas nuevas. Asegúrese de usar consultas sin saltos de línea.
A continuación, se muestra una instrucción CASE sencilla que se utiliza para hacer coincidir condiciones:
CASEexpressionWHENvalueTHENresult[WHEN...] [ELSEresult] END
La siguiente es una instrucción CASE buscada que se utiliza para evaluar cada condición:
CASE WHENboolean conditionTHENresult[WHEN ...] [ELSEresult] END
Ejemplos
nota
Si utiliza la consola de Amazon S3 para ejecutar los siguientes ejemplos y el archivo CSV contiene una fila de encabezado, elija Excluir la primera línea de datos CSV.
Ejemplo 1: utilice una expresión CASE simple para reemplazar New York City por Big Apple en una consulta. Reemplace todos los demás nombres de ciudad por other.
SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;
Resultado de la consulta:
venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...
Ejemplo 2: Utilice una expresión CASE buscada para asignar números de grupo según el valor pricepaid para ventas de tickets individuales:
SELECT pricepaid, CASE WHEN CAST(pricepaid as FLOAT) < 10000 THEN 'group 1' WHEN CAST(pricepaid as FLOAT) > 10000 THEN 'group 2' ELSE 'group 3' END FROM S3Object;
Resultado de la consulta:
pricepaid | case -----------+--------- 12624.00 | group 2 10000.00 | group 3 10000.00 | group 3 9996.00 | group 1 9988.00 | group 1 ...
COALESCE
COALESCE evalúa los argumentos por orden y devuelve el primero que no sea desconocido, es decir, el primero no nulo o que no falta. Esta función no propaga los argumentos nulos o que faltan.
Sintaxis
COALESCE (expression,expression, ... )
Parámetros
-
expression -
La expresión de destino sobre la que opera la función.
Ejemplos
COALESCE(1) -- 1 COALESCE(null) -- null COALESCE(null, null) -- null COALESCE(missing) -- null COALESCE(missing, missing) -- null COALESCE(1, null) -- 1 COALESCE(null, null, 1) -- 1 COALESCE(null, 'string') -- 'string' COALESCE(missing, 1) -- 1
NULLIF
Dadas dos expresiones, NULLIF devuelve NULL si ambas toman el mismo valor; en caso contrario, NULLIF devuelve el resultado de la evaluación de la primera expresión.
Sintaxis
NULLIF (expression1,expression2)
Parámetros
-
expression1,expression2 -
Las expresiones de destino sobre las que opera la función.
Ejemplos
NULLIF(1, 1) -- null NULLIF(1, 2) -- 1 NULLIF(1.0, 1) -- null NULLIF(1, '1') -- 1 NULLIF([1], [1]) -- null NULLIF(1, NULL) -- 1 NULLIF(NULL, 1) -- null NULLIF(null, null) -- null NULLIF(missing, null) -- null NULLIF(missing, missing) -- null