Funções condicionais
Importante
O Amazon S3 Select não está mais disponível para novos clientes. Os clientes existentes do Amazon S3 Select podem continuar usando o recurso normalmente. Saiba mais
O Amazon S3 Select é compatível com as seguintes funções condicionais.
CASE
A expressão CASE
é uma expressão condicional, semelhante às instruções if/then/else
encontradas em outras linguagens. CASE
é usado para especificar um resultado com várias condições. Há dois tipos de expressões CASE
: simples e pesquisada.
Em expressões CASE
simples, uma expressão é comparada a um valor. Quando uma correspondência é encontrada, a ação especificada na cláusula THEN
é aplicada. Se nenhuma correspondência é encontrada, a ação especificada na cláusula ELSE
é aplicada.
Em expressões CASE
pesquisadas, cada CASE
é avaliado com base em uma expressão booliana e a instrução CASE
retorna o primeiro CASE
correspondente. Se nenhuma correspondência de CASE
for encontrada entre as cláusulas WHEN
, a ação na cláusula ELSE
será retornada.
Sintaxe
nota
Atualmente, o Amazon S3 Select não é compatível com ORDER BY
ou consultas que contenham novas linhas. Use consultas sem quebras de linha.
A seguir está uma declaração CASE
simples usada para corresponder às condições:
CASE
expression
WHENvalue
THENresult
[WHEN...] [ELSEresult
] END
Veja a seguir uma declaração CASE
pesquisada usada para avaliar cada condição:
CASE WHEN
boolean condition
THENresult
[WHEN ...] [ELSEresult
] END
Exemplos
nota
Se você usar o console do Amazon S3 para executar os exemplos a seguir e o arquivo CSV tiver uma linha de cabeçalho, selecione Excluir a primeira linha de dados do CSV.
Exemplo 1: use uma expressão CASE
simples para substituir New York City
por Big Apple
em uma consulta. Substitua todos os outros nomes de cidade por other
.
SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;
Resultado da consulta:
venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...
Exemplo 2: use uma expressão CASE
pesquisada para atribuir números de grupo com base no valor pricepaid
para vendas individuais de ingresso:
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 da 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
avalia os argumentos na ordem e retorna o primeiro valor não desconhecido, ou seja, o primeiro valor que não for nulo ou ausente. Essa função não propaga valores nulos e ausentes.
Sintaxe
COALESCE (
expression
,expression
, ... )
Parâmetros
-
expression
-
A expressão de destino na qual a função opera.
Exemplos
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 as duas expressões, NULLIF
retorna NULL
se as duas forem avaliadas para o mesmo valor. Caso contrário, NULLIF
retorna o resultado da avaliação da primeira expressão.
Sintaxe
NULLIF (
expression1
,expression2
)
Parâmetros
-
expression1
,expression2
-
As expressões de destino nas quais a função opera.
Exemplos
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