Concatenar com valor null

Firebird

22/03/2005

Tenho uma view assim:

CREATE VIEW VATIVIDADE(
INDICE,
DESCRICAO)
AS
SELECT INDICE, DESCRICAO||´ - ´||OPERACAO
FROM ATIVIDADE;

Porem quando uma das colunas [b:acad9c7ac9](DESCRICAO, OPERACAO)[/b:acad9c7ac9]
é null, ele não me tras o valor somente de da coluna que tenha informação

indica como c tudo fosse null
na tabela:
Descrição = Plantio
Operação = null
deveria ficar Descricao = Plantio
mais fica Descricao = null
ele ignora a informação quando alguma coluna é null

Como corrigir isso?


Marcos Fernando

Marcos Fernando

Curtidas 0

Respostas

Afarias

Afarias

22/03/2005

para ´corrigir´ isso vc pode:

1- não permitir valores nulos em colunas q usa para concatenar, por exemplo vc poderia ter uma trigger before insert/update com o código

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

note q a mesma coisa pode ser feita no cliente


2- vc pode usar funções como case, coalesce e nvl (UDF) para converter NULL em ´´, tipo:

select coaesce(campo1, ´´) || coalesce(campo2, ´´) from tabela


T+


GOSTEI 0
Faelcavalcanti

Faelcavalcanti

22/03/2005

Acredito que o [b:f1772b134d]coalesce[/b:f1772b134d] só está disponível para o Firebird 1.5, certifique-se que o está utilizando.


GOSTEI 0
Afarias

Afarias

22/03/2005

|Acredito que o coalesce só está disponível para o Firebird 1.5

exato. para IB 6.0 ou FB 1.0 deve ser utilizada a solução 1 ou a solução 2 com UDF como citado (neste caso particularmente acho a sol. 1 melhor)


T+


GOSTEI 0
POSTAR