SóProvas


ID
708967
Banca
FCC
Órgão
MPE-PE
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

No banco de dados PostgreSQL, a função COALESCE

Alternativas
Comentários
  • COALESCE retorna a primeira coluna NÃO nula do conjunto selecionado. Veja exemplo abaixo.
    Name Business_Phone Cell_Phone Home_Phone
    Jeff 531-2531 622-7813 565-9901
    Laura NULL 772-5588 312-4088
    Peter NULL NULL 594-7477
    SELECT Name, COALESCE(Business_Phone, Cell_Phone, Home_Phone) Contact_Phone
    FROM Contact_Info;

    Resultado:
    Name Contact_Phone
    Jeff 531-2531
    Laura 772-5588
    Peter 594-7477
  • Lembro que essa função também pode ser usada para substituição de null por outra coisa como 0 por exemplo. Semelhante ao NVL() ou IFNULL()

    SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
    FROM Products 
    Vai substituir tudo que for null em UnitsOnOrder por 0

    fonte:
    http://220.225.90.157/somnath/SQL/sql_isnull.asp.htm
    http://www.postgresql.org/docs/8.1/static/functions-conditional.html
  • Sintaxe: COALESCE(expression1,…n)

    O coalesce analisa o primeiro parâmetro, caso esse parâmetro seja null então ele analise o segundo parâmetro, caso o segundo seja diferente de null ele retorna o valor do mesmo, senão ele analisa o próximo parâmetro até que um dos parâmetros seja diferente de null ou não haja mais parâmetros para analisar.

    Exemplo:

    MySQL

    SELECT coalesce(null, 1)

    Resultado: 1

    SELECT coalesce (null, null, 2)

    Resultado: 2

    SELECT coalesce (null, null, null)

    Resultado: null

    Os parâmetros podem receber valores “fixos” e campos:
    SELECT coalesce(vlr_pedido, 0) FROM tabela_pedidos

    Ou seja,  no exemplo acima caso o campo vlr_pedido seja NULL então será retornado o valor do segundo parâmetro, no caso, “0″. Senão será retornado o valor presente no campo “vlr_pedido”.

    Lembrando que o coalesce funciona tanto no MySQL bem como no PostgreSQL, no Oracle,  no SQL Server.

    Lembrando também que os tipos devem ser iguais. Se forem diferentes retorna:
    ERRO:  tipos no COALESCE integer e character varying não podem corresponder
     

  • A função COALESCE retorna o primeiro de seus argumentos que não for nulo. Só retorna nulo quando todos os seus argumentos são nulos. Geralmente é útil para substituir o valor padrão quando este é o valor nulo, quando os dados são usados para exibição.