Fórum Concatena / Nulo... #53280

11/10/2005

0

Olá amigos,

Alguém poderia me ajudar em um dúvida sobre concatenas, primeiramente uso IBX e F.B 1.5.
É o seguinte, estou fazendo um relatório com cabeçalho padrão para minhas aplicação e usei a concatena para unir o telefone e o e-mail, mas quando o e-mail é nulo (a empresa por exemplo não tem e-mail e deixou em branco), desaparece tb o telefone, estou criando os relatórios em Report Builder 7. Como poderia deixar somente o telefone no centro caso o e-mail seja nulo.

[b:2f12d57225]IBQUERY - SQL:[/b:2f12d57225]
select P.CODIGO, P.PAROQUIA, P.DIOCESE, P.FIGURA, ´Fone: ´ || P.TELEFONE1 || ´ - ´ || P.EMAIL, P.ENDERECO, ´Cep: ´ || P.CEP || ´ - ´ || C.NOMECID || ´ - ´ || C.UF from PAROQUIA P JOIN CIDADES C ON P.CIDADEUF = C.CODIGOCID



[b:2f12d57225]Tipo cabeçalho[/b:2f12d57225]

Nome da Empresa
Endereçao da empresa
Cep: 00.000-000 - Cidade - Uf => concatena
Fone: (00)0000-0000 - E-mail: teste@teste.com => condatena

Gostaria que ficasse assim quando não tivesse o email.

Nome da Empresa
Endereçao da empresa
Cep: 00.000-000 - Cidade - Uf => concatena
Fone: (00)0000-0000

Mas quando o e-mail é nulo ele some o telefone.

Como posso resolver este problema.

Obrigado.
Rodrigo.

[color=green:2f12d57225]Movido de Delphi para Interbase/Firebird[/color:2f12d57225]


Rodrigorpb

Rodrigorpb

Responder

Posts

11/10/2005

Sidneipaixao

Os bancos de dados em geral possuem funcoes de conversao e testes de valores...

No SQLServer, utilizar ISNULL resolveria o problema
... TELEFONE + ISNULL(EMAIL, ´ ´), ...

No Oracle, NVL:
... TELEFONE || NVL(EMAIL, ´ ´), ...

No Access, NZ, e assim por diante.

O banco de dados citado eu nao conheco, particularmente.
Sera´ que nenhuma das funcoes acima funciona com ele?

[]´s,
Sidnei


Responder

Gostei + 0

11/10/2005

Gandalf.nho

Vc pode usar a função COALESCE, assim:

select P.CODIGO, P.PAROQUIA, P.DIOCESE, P.FIGURA, ´Fone: ´ || P.TELEFONE1 || ´ - ´ || COALESCE(P.EMAIL, ´´), P.ENDERECO, ´Cep: ´ || P.CEP || ´ - ´ || C.NOMECID || ´ - ´ || C.UF from PAROQUIA P JOIN CIDADES C ON P.CIDADEUF = C.CODIGOCID 



Responder

Gostei + 0

11/10/2005

Rodrigorpb

Obrigado gandalf.nho

Funcionou perfeitamente, mas tem como eu tirar o sinal de ´ - ´ quando não tiver o e-mail.


Nome da Empresa
Endereçao da empresa
Cep: 00.000-000 - Cidade - Uf => concatena
Fone: (00)0000-0000 - => [b:6cace1ef4f]este tracinho[/b:6cace1ef4f]

select P.CODIGO, P.PAROQUIA, P.DIOCESE, P.FIGURA, ´Fone: ´ || P.TELEFONE1 [b:6cace1ef4f]|| ´ - ´ ||[/b:6cace1ef4f] COALESCE(P.EMAIL, ´´), P.ENDERECO, ´Cep: ´ || P.CEP || ´ - ´ || C.NOMECID || ´ - ´ || C.UF from PAROQUIA P JOIN CIDADES C ON P.CIDADEUF = C.CODIGOCID

Obrigado.
Rodrigo.


Responder

Gostei + 0

11/10/2005

Gandalf.nho

Veja se essa estrutura com CASE funciona (não testei):

select P.CODIGO, P.PAROQUIA, P.DIOCESE, P.FIGURA, CASE WHEN P.EMAIL IS NULL THEN ´Fone: ´ || P.TELEFONE1 ELSE ´Fone: ´ || P.TELEFONE1 || ´ - ´ || P.EMAIL END, P.ENDERECO, ´Cep: ´ || P.CEP || ´ - ´ || C.NOMECID || ´ - ´ || C.UF from PAROQUIA P JOIN CIDADES C ON P.CIDADEUF = C.CODIGOCID 



Responder

Gostei + 0

11/10/2005

Rodrigorpb

Obrigado novamente gandalf.nho

Deu certo.

Valeu. :wink:


Rodrigo


Responder

Gostei + 0

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

Aceitar