Summary: in this tutorial, you will learn how to use the Oracle COALESCE()
function to return the first non-null arguments in a list.
Introdução à função Oracle COALESCE ()
o Oracle COALESCE()
aceita uma lista de argumentos e devolve o primeiro que avalia um valor não nulo.,
A seguir ilustra a sintaxe do Oracle COALESCE()
função:
esta sintaxe, o COALESCE()
retorna a primeira expressão não-null na lista. Requer pelo menos duas expressões. No caso de todas as expressões avaliarem para null, a função retorna null.,
O exemplo a seguir retorna uma, porque é o primeiro não-null argumento:
RESULT---------- 1
O exemplo a seguir retorna null porque todos os argumentos são null:
tipo de Retorno
Se todos os argumentos têm o mesmo tipo de dados, o COALESCE()
função retorna um valor do tipo de dados.
Se os argumentos têm diferentes tipos de dados, a função COALESCE()
converte implicitamente todos os argumentos para o tipo de dados do primeiro argumento não nulo., No caso da conversão falhar, então Oracle emite um erro.
o exemplo seguinte devolve um valor com o tipo de caracteres, porque todos os argumentos são caracteres.,
da mesma forma, o exemplo a seguir retorna um valor do tipo numérico:
RESULT---------- 1
no Entanto, o exemplo a seguir usa argumentos de tipos diferentes para o COALESCE()
função:
Oracle emitiu o seguinte erro:
o COALESCE()
função tentou converter o tipo de caractere de que o terceiro argumento para um tipo numérico do segundo argumento, que resultou em um erro.,
avaliação de curto-circuito
a função COALESCE()
utiliza a avaliação de curto-circuito. Significa que a função pára de avaliar as expressões restantes, uma vez que encontra a primeira avaliação para um valor não nulo.
Considere o exemplo a seguir:
neste exemplo, o COALESCE()
função avaliadas apenas a primeira expressão, porque o resultado da primeira expressão era de dois (1+1). Não avaliou a segunda expressão (1/0). Se o tivesse feito, a Oracle teria emitido a divisão por erro zero.,
Oracle COALESCE() exemplo
vamos montar uma tabela de amostra para testes.suponha que você tem que gravar contatos de emergência de funcionários com vários números de telefone: telefone de trabalho, telefone de casa e celular. Para fazer isso, crie uma nova tabela denominada emergency_contacts
da seguinte forma:
as instruções A seguir inserir alguns contactos de emergência na tabela:
Alguns contatos têm apenas de telefone de trabalho, enquanto outros podem ter um telefone residencial e telefone celular ou não tem nenhum número de telefone em tudo.,
a seguinte consulta recupera os empregados e seus contatos de emergência com números de telefone:
neste exemplo, nós usamos a função COALESCE()
para selecionar telefone doméstico, telefone de trabalho, ou celular, se cada um estiver disponível. In case no phone numbers are available, we returned N/A
literal string which stands for not available.,
A seguir mostra o resultado da consulta:
Oracle COALESCE() e CASO a expressão
Você pode usar o COALESCE()
função em vez do mais longo CASE
expressão quando se trata de teste para null em várias expressões. The COALESCE()
function is more concise than a CASE
expression that involves null evaluations.,
If you check for NULL in two expressions, the COALESCE()
function is equivalent to the CASE
expression.
For example, the following COALESCE()
function:
is equivalent to:
Likewise,
is equivalent to
Oracle COALESCE() vs. NVL()
The COALESCE()
function is a part of SQL ANSI-92 standard while NVL()
function is Oracle specific.,
Em caso de duas expressões, o COALESCE()
função e NVL()
parece ser semelhante, mas suas implementações são diferentes. Ver as seguintes afirmações:
ambas as afirmações retornam o mesmo resultado que é um. No entanto, a função COALESCE()
apenas avalia a primeira expressão para determinar o resultado, enquanto a função NVL()
avalia ambas as expressões.,
Vamos ver o exemplo a seguir:
A instrução acima devolvida 1 considerando que o exemplo a seguir faz com que um erro:
O erro é:
o NVL()
função avaliada a segunda expressão 1/0
que faz com que o erro.
neste tutorial, você aprendeu a usar a função Oracle COALESCE()
para retornar a primeira expressão não-nula em uma lista de expressões.
- este tutorial foi útil?,
- YesNo