DECODE EM TO CHAR

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Ter, 04 Dez 2007 7:59 am

OLÁ MEUS CAROS BOM DIA! A DUVIDA DE HOJE É A SEGUINTE:

TENHA UMA FUNÇÃO QUE MEU GRANDE AMIGO DE ARARUAMA HAVIA ME DADO EM TOPICOS ANTERIORES, FOI DE GRANDE AJUDA MAS AGORA ESTOU QUERENDO DÁ UMA ENCREMENTADA, TIPO:

SELECT ( TO_CHAR (data_inicial, 'dd/mm/yyyy')
2 || ' | '
3 || FLOOR (TRUNC (data_final) - TRUNC (data_inicial))
4 || ' dias | '
5 || TO_CHAR (data_final, 'dd/mm/yyyy')
6 ) dias
7* FROM mens_erro2

OK DAÍ EU GOSTARIA DO SEGUINTE QUANDO O RETORNO DO BANCO FOR NULO "VAZIO" EU GOSTARIA DE USAR O DECODE PARA FILTRAR FICARIA ASSIM +OU-


DATAINICIO | DIAS ENTRE AS DATAS | DATAFIM

SE CASO A DATA FIM FOSSE NULL EU QUERIA MOSTRAR UMA MENSAGEM TIPO USUARIO ATIVO SENÃO ELE MOSTRA OS DIAS QUE O USUARUO TEM ENTRE AS DATAS.


UM FORTE ABRAÇO A TODOS.
carlos12
Localização: rio

Mensagemem Ter, 04 Dez 2007 8:10 am

Brother, veja se é mais ou menos isso:

Código: Selecionar todos

SELECT (   TO_CHAR (SYSDATE, 'dd/mm/yyyy')
        || ' | '
        || DECODE ( FLOOR (TRUNC (SYSDATE + 10) - TRUNC (SYSDATE)), NULL, 'Usuário Ativo',  FLOOR (TRUNC (SYSDATE + 10) - TRUNC (SYSDATE)))
        || ' dias | '
        || (TO_CHAR (SYSDATE + 10, 'dd/mm/yyyy'))
       ) dias
  FROM DUAL


Dá uma adaptada nas mensagens para o teu caso e, qualquer coisa manda ai.
Editado pela última vez por Trevisolli em Ter, 04 Dez 2007 8:10 am, em um total de 1 vez.
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Mensagemem Ter, 04 Dez 2007 8:10 am

DEXA SÓ EU FAZER UM ADENDO AQUI O MEU AMIGO NÃO É DE ARARUAMA E SIM DE:

Cristiano (Tineks)
Araraquara - SP

FOI MAU CRISTIANO AINDA ESTOU MEIO SONOLENTO ACABEI ERRANDO, RS
carlos12
Localização: rio

Mensagemem Ter, 04 Dez 2007 8:32 am

eu estranhei quando vi araruama kkkkkkkkkk, mas tranquilo meu amigo!!
É normal o pessoal trocar o nome daqui. hehehehehehe

[]'s!!!!
Tineks
Localização: Araraquara - SP

Cristiano (Tineks)
Araraquara - SP

Mensagemem Ter, 04 Dez 2007 8:45 am

CARA está DANDO UM PAU MUITO DOIDO


(TO_CHAR (dtinicio, 'dd/mm/yyyy')
,
DECODE ( FLOOR (TRUNC (DTEXCLUSAO + 10) - TRUNC (SYSDATE)), NULL, 'Usuário Ativo', FLOOR (TRUNC (SYSDATE + 10) - TRUNC (SYSDATE)))
|| ' dias | '
|| (TO_CHAR (SYSDATE + 10, 'dd/mm/yyyy'))
dias,

ELE está DANDO 10 DIAS PRA DIFERENÇA ENTRE AS DATA TIPO:

A DATA QUE ESTÁ NULL VEM CORRETA MAS A DIFERENÇA ENTRE AS OUTRAS VEM ERRADA ELE está TRAZENDO 10 DIAS PARA TODOS
carlos12
Localização: rio

Mensagemem Ter, 04 Dez 2007 8:52 am

É por causa deste SYSDATE+10 brother, que coloquei de exemplo.
Você pode estar alterando estes SYSDATE como tua necessidade.

Se for o caso, manda a definição das tuas tabelas pra gente montar com base nas tuas informações, beleza?

qualquer coisa, manda ai.
Editado pela última vez por Trevisolli em Ter, 04 Dez 2007 8:57 am, em um total de 1 vez.
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Mensagemem Ter, 04 Dez 2007 8:55 am

Trevisolli

CARA O ERRO ERA MEU MESMO, rs CONCERTEI aqui E FICOU SHOW DE BOLA, BRIGADO MEU AMIGÃO!
carlos12
Localização: rio

Mensagemem Ter, 04 Dez 2007 8:57 am

Blzera brother.
qualquer coisa, estamos ai.
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes