Quando você insere a consulta no SQL Editor ou cria um cálculo, você usa sintaxe do Presto SQL. Para retornar valores com base no cumprimento de condições específicas, você pode achar essas expressões comuns úteis.
CASE
Para avaliar uma lista de condições e retornar um valor com base na primeira correspondência ou condição verdadeira, use uma expressão CASE, como, por exemplo, para ativar a lógica if/else. O CASE tem dois formatos:
- Em sua forma simples,
CASEavalia a lista para uma expressão específica e retorna seu valor, como em:
CASE expression WHEN value THEN result [ WHEN ... ] [ ELSE result ] END
- Em sua forma searched,
CASEavalia uma lista de booleanos e retorna o valor da primeira condiçãoTRUE, como:
CASE WHEN condition THEN result [ WHEN ... ] [ ELSE result ] END
Por exemplo, em sua forma simples, para retornar um valor ("um" ou "dois") com base em uma expressão correspondente:
SELECT expressão, expressão CASE WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'many' END
Se nenhuma condição for verdadeira, CASE retorna o valor da cláusula ELSE ("many", neste exemplo), ou NULL se não houver cláusula ELSE.
Observação: Para retornar um valor com base no fato de uma única condição ser verdadeira, use uma instrução IF.
COALESCE
Para retornar o primeiro valor não nulo em uma lista, use a expressão COALESCE como COALESCE(value1, value2, value3).
IF
Para retornar um valor dependendo do fato de uma condição ser verdadeira ou falsa, use a instrução IF como IF(condition, true_value, false_value).
Observação: Se a condição for falsa e nenhum false_value for especificado, a instrução IF retornará NULL.
Is Null ou Is Not Null
Para testar se um valor está vazio ou é NULL, use o operador IS NULL ou IS NOT NULL:
- Para testar se há valores vazios, use
IS NULL. - Para testar se há valores não vazios, use
IS NOT NULL.
Por exemplo, para testar os dados do cliente em relação aos que não têm endereços:
SELECT Customer_Name, Contact_Name, Address
FROM Customers
WHERE Address IS NULL
TRY
Para retornar NULL quando uma expressão falhar devido a dados corrompidos ou inválidos, use a expressão TRY como TRY(expression). TRY trata esses erros:
- Divisão por zero
- Inválido
CASTou argumento de função - Valor numérico fora do intervalo