Substituir Null por Default num Select

25/04/2003

21

Como faço para substituir uma campo null por um valor default apenas no select?

Ex: Quando o telefone for null aparecel ´sem telefone´.
Imagino que seja algo semelhante a:
select nome, comando(telefone,´sem telefone´) from cliente

Maria 3721-4321
Andre sem telefone
João sem telefone
Rosi 3721-1234


Responder

Posts

25/04/2003

Andreyrf

vc pode selecionar todos os telefones nulos

Select nome, ... sem telefone as telefone from cliente where fone is null


Responder

25/04/2003

Lucianoko

Andreyrf
Acho que você não entendeu.
Então vamos direto ao meu problema.

Preciso imprimir etiquetas da seguinte forma:

select Endereco || ´ - ´ || Bairro, ... from cliente ....

O problema é quando o Bairro é NULL aí a concatenação endereco + bairro resulta em null. Fudeeeeuuuu!!!!!!!

Entendeu?!
Preciso arrumar isto de uma forma bem prática.
Obs: Não vou lançar ´ ´ no lugar de null no cadastro de cliente.
Então eu pensei em antes de concatenar, converter null por ´ ´ apenas no select.
Uso o IB 6.5

Se puder me ajudar, obrigado!
t+


Responder

25/04/2003

«leandro»

Vc pode usar a função coalesce(campo,valor) onde valor é o que vc quer que retorne no case de ser nulo, caso não seja nulo ele retorna o valor normal, ou então use o case, mas o case só existe no firebird 1.5 e o coalesce não se existe no ib 6.5.........valeu

leandro


Responder

27/04/2003

Afarias

Outra alternativa é NUNCA inserir nulos em campos q serão usados em ´concatenações´.

por ex, vc pode ter triggers BEFORE INSERT/UPDATE com o código:

if (new.campoX is null) then
new.campoX = ´´;



Abraço.


Responder

19/07/2015

Lucio Motta

o post é antigo mas sempre vale dar uma mãozinha...

para não trazer o NULL, o q pode dar problemas inclusive com SUMs, AVERAGEs...é só usar o COALESCE

Select COALESCE( campo , 'N' ) as campo FROM tabela

Quando o conteudo de 'campo' for NULL o COALESCE substitui pelo valor indicado( 'N' ou 0 ou 'False' ou qualquer coisa q vc queira )

Abraços
Responder

24/09/2019

Vicente Santos

usei o coalesce(valor, valorpadraocasosejanull) e funcionou
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar