[firebase-br] RES: RES: Select CASE

Marcelo Moreira marcelo em easysistemasmg.com.br
Qua Out 17 17:42:33 -03 2007


Rodrigo,
Fiz praticamente igual ao exemplo que você me passou e funcionou como eu
esperava.
Muito obrigado pela atenção!
Vlw!

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Rodrigo A. de Freitas
Enviada em: quarta-feira, 17 de outubro de 2007 15:08
Para: 'FireBase'
Assunto: [firebase-br] RES: Select CASE

Boa tarde Marcelo, você pode fazer assim:

SELECT CASE
       WHEN DESCRICAO IS NOT NULL THEN DESCRICAO
       ELSE
         CASE TIPO
         WHEN 0 THEN ''
         WHEN 1 THEN ''
         WHEN 2 THEN '0'
         WHEN 3 THEN '0'
         WHEN 4 THEN CAST(CURRENT_DATE AS VARCHAR(10))
       END FROM TABELA

Lembrando que não existe a opção de um campo 'variante', então a sua data
teve ser convertida para uma string. Pra retornar com a máscara correta,
você pode fazer assim:

CAST(EXTRACT(DAY FROM CURRENT_DATE) AS VARCHAR(2) || '/' ||
CAST(EXTRACT(MONTH FROM CURRENT_DATE) AS VARCHAR(2) || '/' ||
CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS VARCHAR(4)

[]'s

Rodrigo A. de Freitas
Soluções & Informática

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Marcelo Moreira
Enviada em: quarta-feira, 17 de outubro de 2007 13:53
Para: lista em firebase.com.br
Assunto: [firebase-br] Select CASE

Pessoal,

Boa tarde!

 

                Tenho uma tabela com os seguintes campos:

 

DESCRICAO     VARCHAR(100)

TIPO                   INTEGER

 

No campo tipo eu posso ter cinco valores:

0 - MULTIPLA ESCOLHA    1 - TEXTO     2 - NUMERO     3 - VALOR    4 – DATA

 

O que eu gostaria de fazer é um select que quando o campo DESCRICAO não
tiver valor algum eu retornar na consulta valores padrão de acordo com o
valor que esta no campo TIPO. Exemplo: Vamos supor que na DESCRICAO esteja
Null e o TIPO seja:

 

0 então retorno uma string vazia ‘’

1 então retorna uma string vazia ‘’

2 então retorna ‘0’

3 então retorna ‘0’

4 então retorna current_date

 

Caso o campo DESCRICAO não esteja nulo então retorna o que esta gravado La
mesmo.

Alguém sabe me dizer se é possível?

Estou usando o Firebird 1.5.3

 

Obrigado pele atenção,

Abraços!

Marcelo Moreira


No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.488 / Virus Database: 269.14.12/1073 - Release Date: 16/10/2007
08:22
 
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



-- 
No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.488 / Virus Database: 269.14.13/1074 - Release Date: 16/10/2007
14:14



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.488 / Virus Database: 269.14.12/1073 - Release Date: 16/10/2007
08:22
 

No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.488 / Virus Database: 269.14.12/1073 - Release Date: 16/10/2007
08:22
 





Mais detalhes sobre a lista de discussão lista