Expressões condicionais no SQL padrão

As expressões condicionais impõem restrições na ordem de avaliação das entradas. Em essência, elas são avaliadas da esquerda para a direita, com curto-circuito, e somente avaliam o valor da saída escolhida. Por outro lado, todas as entradas das funções regulares são avaliadas antes de chamar a função. O curto-circuito em expressões condicionais pode ser explorado para o tratamento de erros ou ajuste do desempenho.

Sintaxe Tipos de dados de entrada Tipo de dados de resultado Descrição

CASE expr
  WHEN value THEN result
  [WHEN ...]
  [ELSE else_result]
  END
expr and value: Any type result e else_result: supertipo de tipos de entrada. Compara expr ao valor de cada cláusula WHEN sucessiva e retorna o primeiro resultado quando a comparação retorna verdadeira. As cláusulas WHEN e else_result restantes não são avaliadas. Se a comparação expr = value retornar falsa ou NULL para todas as cláusulas WHEN, retornará else_result, se presente. Se não presente, retornará NULL. As expressões expr e value precisam ser coercíveis implicitamente para um supertipo comum. As comparações de igualdade são realizadas em valores coercíveis. As expressões result e else_result precisam ser coercíveis a um supertipo comum.

CASE
  WHEN cond1 THEN result
  [WHEN cond2...]
  [ELSE else_result]
  END
cond: BOOL result e else_result: supertipo de tipos de entrada. Avalia a condição cond de cada cláusula WHEN sucessiva e retorna o primeiro resultado quando a condição é verdadeira. As cláusulas WHEN restantes e else_result não são avaliadas. Se todas as condições forem falsas ou NULL, retornará else_result, se presente. Se não presente, retornará NULL. As expressões result e else_result precisam ser coercíveis implicitamente para um supertipo comum.
COALESCE(expr1, ..., exprN) Qualquer tipo Supertipo de tipos de entrada Retorna o valor da primeira expressão não nula. As expressões restantes não são avaliadas. Todas as expressões de entrada precisam ser coercíveis implicitamente para um supertipo comum.
IF(cond, true_result, else_result) cond: BOOL true_result e else_result: qualquer tipo. Se cond for verdadeiro, retornará true_result. Caso contrário, retorna else_result. else_result não será avaliado se cond for verdadeiro. true_result não será avaliado se cond for falso ou NULL. true_result e else_result precisam ser coercíveis para um supertipo comum.
IFNULL(expr, null_result) Qualquer tipo Qualquer tipo ou supertipo de tipos de entrada. Se expr for NULL, retornará null_result. Caso contrário, retornará expr. Se expr não for NULL, null_result não será avaliado. expr e null_result precisam ser coercíveis implicitamente para um supertipo comum. Sinônimo para COALESCE(expr, null_result).
NULLIF(expression, expression_to_match) Qualquer tipo T ou subtipo de T Qualquer tipo T ou subtipo de T Retorna NULL se expression = expression_to_match for verdadeiro. Caso contrário, retorna expression. expression e expression_to_match precisam ser coercíveis implicitamente para um supertipo comum. A comparação de igualdade é realizada em valores coercíveis.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.