Concatenar com valor null
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?
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
Curtidas 0
Respostas
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+
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
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
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+
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