Substituir Null por Default num Select

25/04/2003

0

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


Lucianoko

Lucianoko

Responder

Post mais votado

19/07/2015

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

Lucio Motta

Lucio Motta
Responder

Mais 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

24/09/2019

Vicente Santos

usei o coalesce(valor, valorpadraocasosejanull) e funcionou
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar