Funciones condicionales - Amazon Simple Storage Service

Funciones condicionales

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:

CASE expression WHEN value THEN result [WHEN...] [ELSE result] END

La siguiente es una instrucción CASE buscada que se utiliza para evaluar cada condición:

CASE WHEN boolean condition THEN result [WHEN ...] [ELSE result] 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