Função COALESCE: SQL
Veja neste artigo a função COALESCE usada em banco de dados, veja para que serve e como usar.
22 Gostei
Olá pessoal, vamos a mais um artigo sobre SQL, neste vou mostrar uma situação muito intrigante que aconteceu comigo na época, precisei fazer um relatório e concatenar os dados de endereço dos clientes cadastrados, até ai tudo bem. Fiz uma coisa muito simples fui concatenando os dados C.Endereco || C.Numero || C.CEP || C.Complemento || C.Bairro.
Muito simples não é? Mas o problema estava nos clientes que não tinham por exemplo o complemento, o select retornava o seguinte.
O problema era que o cliente Douglas Claudio tinha Endereço, Número, CEP, Bairro. A única informação que não estava no cadastro do mesmo era a de Complemento. O problema é que quando o campo é nulo o Firebird não consegue concatenar com valores nulos, para isso exite uma função chamada COALESCE.
Esta função tem como objetivo retornar a primeira expressão não nula entre seus argumentos.
COALESCE (expression [ ,...n ] )
Agora que vimos a introdução e a sintaxe vamos ver como consegui resolver meu problema.
Select Original :
SELECT C.Endereco || C.Numero || C.CEP || C.Complemento || C.Bairro
FROM CLIENTE C
Select Modificado :
SELECT C.Endereco || C.Numero || C.CEP ||
COALESCE(C.Complemento, '') || C.Bairro
Veja que coloquei apenas a função COALESCE ao lado do Complemento, no meu caso foi feito assim pois todos outros campos são obrigatórios então nunca teria um Cliente sem Endereco, Numer, CEP e Bairro agora o complemento ele não é obrigatório e nem pode ser.