O NVL usado em outros bancos de dados tem a mesma finalidade que o coalesce no PostgreSQL e ainda pode ser encontrado como IFNULL.
Sintaxe:
COALESCE (primeiro augumento, segundo argumento, argumentos restantes…);
O coalesce pode ser usado para mostrar outro campo, ou um valor predeterminado quando o primeiro estiver null. É uma alternativa para o CASE deixando o código mais enxuto.
Exemplo:
Na tabela tem a seguinte informação:
codigo_de_barra |
descricao_abreviado |
descricao_completo |
valor |
0001 |
PROD1 |
PRODUTO UM |
99,99 |
0002 |
NULL |
PRODUTO DOIS |
49,98 |
0003 |
NULL |
NULL |
NULL |
E depois feito uma busca da seguinte maneira:
SELECT codigo_de_barra, COALESCE(descricao_abreviada, descricao_completa, 'Não informado') AS descricao, COALESCE(valor, 0) as Preco FROM tbProdutos;
Neste exemplo é mostrado dois casos de uso. Na seleção do cadastro de produtos, primeiro é usado na descrição e depois no preço dos itens.
Nessa tabela existem pelo menos dois campos de descrição o completo e abreviado. Primeiro é mostrado a descrição abreviada caso não exista será apresentado a descrição completa e se ainda assim não existir será mostrado como não informado. Ou seja foi usado em um campo de texto a opção de dois campos e caso não exista um valor padrão.
No preço é chamado o campo valor e caso ele esteja null é preenchido com 0 zero.
Ficando assim a consulta:
codigo_de_barra | descricao | preco |
0001 | PROD1 | 99,99 |
0002 | PRODUTO DOIS | 49,98 |
0003 | Não informado | 0 |
Sintaxe:
COALESCE (primeiro augumento, segundo argumento, argumentos restantes…);
Exemplo:
Na tabela tem a seguinte informação:
codigo_de_barra |
descricao_abreviado |
descricao_completo |
valor |
0001 |
PROD1 |
PRODUTO UM |
99,99 |
0002 |
NULL |
PRODUTO DOIS |
49,98 |
0003 |
NULL |
NULL |
NULL |
E depois feito uma busca da seguinte maneira:
SELECT codigo_de_barra, COALESCE(descricao_abreviada, descricao_completa, 'Não informado') AS descricao, COALESCE(valor, 0) as Preco FROM tbProdutos;
Neste exemplo é mostrado dois casos de uso. Na seleção do cadastro de produtos, primeiro é usado na descrição e depois no preço dos itens.
Nessa tabela existem pelo menos dois campos de descrição o completo e abreviado. Primeiro é mostrado a descrição abreviada caso não exista será apresentado a descrição completa e se ainda assim não existir será mostrado como não informado. Ou seja foi usado em um campo de texto a opção de dois campos e caso não exista um valor padrão.
No preço é chamado o campo valor e caso ele esteja null é preenchido com 0 zero.
Ficando assim a consulta:
codigo_de_barra | descricao | preco |
0001 | PROD1 | 99,99 |
0002 | PRODUTO DOIS | 49,98 |
0003 | Não informado | 0 |
O coalesce é usado no postgres, mas pode ser encontrado em outros bancos com outros nomes como NVL ou IFNULL.