Select em SQL

1 resposta
ricardobras

pessoal, estou com uma duvida em sql,

eu tenho um select que me retorna uma coluna com todas as datas, exemplo:

select nome, endereço, dtCadastro from cadastro;
±------------±--------------±--------------------+

  • nome + endereco + dtCadastro +
    ±------------±--------------±--------------------+
  • Ricardo + rua 10 nº 20 + 20/09/2010 +
    ±----------------------------------------------------+
  • priscila + rua 5 nº 5 + 01/08/2010 +
    ±------------±--------------±--------------------+

então eu queria fazer com que o campo dtCadastro, fosse separado por coluna, como se cada data em seu respectiva coluna de mes, ex:
±------------±--------------±--------------------±-----------------------+

  • nome + endereco + Agosto + Setembro +
    ±------------±--------------±--------------------±-----------------------+
    +Ricardo + rua 10 nº 20 + 20/09/2010 + +
    ±-----------------------------------------------------------------------------+
    +priscila + rua 5 nº 5 + + 01/08/2010 +
    ±------------±--------------±--------------------±-----------------------+

Alguem poderia me ajudar?
não estou conseguindo e é urgente… ja utilizei case where e nada!!

Obrigado pessoal.

1 Resposta

denissys

Amigão de uma lida nesse artigo
http://66.221.222.85/reference/decode_case.html

Não sei se você está utilizando MySQL, Oracle ou SQLServer, caso seja no oracle, você pode fazer o seguinte:

http://www.techonthenet.com/oracle/functions/to_date.php

SELECT 
       DECODE( to_date(dtCadastro, 'MM'), '01', dtCadastro) Janeiro,
       DECODE( to_date(dtCadastro, 'MM'), '02', dtCadastro) Fevereiro,
       DECODE( to_date(dtCadastro, 'MM'), '03', dtCadastro) Março
FROM cadastro

Mas você pode pesquisar por técnicas de verticalização. Caso o seu banco de dados não seje o Oracle, pesquise pela instrução CASE ou IF na query.

Criado 22 de setembro de 2010
Ultima resposta 22 de set. de 2010
Respostas 1
Participantes 2