- Este tópico contém 12 respostas, 6 vozes e foi atualizado pela última vez 16 anos, 4 meses atrás por
Anônimo.
-
AutorPosts
-
26 de junho de 2009 às 6:43 pm #87536
Tiago_BB
ParticipanteOla pessoal.
Estou com um problema em ordenação de dados no SQL.
Vamos supor que tenho o seguinte resultado em um select da minha tabela:
CODIGO DATA
———– ——-
00003 03/06
00005 04/06
00006 05/06
00003 04/06
00001 05/06Coloquei em ordem crescente por DATA.
Porém gostaria de fazer com que tal select me retorne em ordem de DATA e CODIGO, gostaria que me retornasse da seguinte forma:
CODIGO DATA
———– ——-
00003 03/06
00003 04/06
00005 04/06
00006 05/06
00001 05/06Alguém tem alguma sugestão?
Agradeço desde ja!!!
26 de junho de 2009 às 6:44 pm #87538Rodrigo Mesquita
Participanteorder by CODIGO,DATA
26 de junho de 2009 às 7:00 pm #87542Tiago_BB
ParticipanteJa tentei ordenando por CODIGO e DATA.
Porém ele ordena primeiro pelo codigo.
Com isso caso eu tenha um CODIGO 00008 = 01/06 e outro CODIGO 00006 = 03/06 ele exibe primeiro o 00008 e depois o 00006.
Atte.
26 de junho de 2009 às 7:48 pm #87546Anônimo
Olá,
Os campos CODIGO e DATA estão definidos com qual tipo de dados?
26 de junho de 2009 às 7:52 pm #87547Tiago_BB
Participantenumeric (5) e numeric (6) respectivamente.
26 de junho de 2009 às 7:56 pm #87548Regis Araujo
ParticipanteOla Tiago..
já tentou colocar o “order by CODIGO , DATA ASC ” ??
Abraços…
26 de junho de 2009 às 8:04 pm #87549Tiago_BB
ParticipanteJa tentei.. mais cai no mesmo caso…
Ele ordena pelo CODIGO.. e a data nao fica em ordem crescente!!!
26 de junho de 2009 às 8:09 pm #87550Anônimo
Olá,
Poderia postar a instrunção de insert desta tabela?
26 de junho de 2009 às 8:18 pm #87553Tiago_BB
ParticipanteNa realidade uso várias tabelas no meu select..
Fiz esse exemplo acima para exemplificar o ocorrido!!!
26 de junho de 2009 às 8:48 pm #87554Rodrigo Mesquita
Participantefaça um to_date no campo da data, depois ordene normalmente
26 de junho de 2009 às 9:01 pm #87555David Siqueira
ParticipanteÉ isso que vc precisa ???:
Testedb.System> insert into teste values(11111,010109);1 linha criada.
Testedb.System> insert into teste values(22222,020109);
1 linha criada.
Testedb.System> insert into teste values(33333,030109);
1 linha criada.
Testedb.System>
Testedb.System> commit;ValidaþÒo completa.
Testedb.System> select * from teste order by a,b asc;
A B
11111 10109 22222 20109 33333 301093 linhas selecionadas.
Testedb.System>
Abraço.
26 de junho de 2009 às 11:30 pm #87558Marcio68Almeida
ParticipanteVocê quer ordenar primeiro por data e depois código, certo ???
Não me lembro, mas acho que tem alguma função para transformar a data em ano+mes+dia, use essa função na clausula Order By27 de junho de 2009 às 12:36 am #87561Anônimo
Olá,
Eu acho que a função que o Marcio citou é essa:
DATEPART( )
Retorna a parte específica de uma data ou de uma coluna datetime, incluindo o dia, mês, ou ano.use pubs
goSELECT cast(DATEPART(day, hire_date)as varchar) + ‘/’ + cast(DATEPART(month, hire_date)as varchar) +
‘/’ + cast(DATEPART(year, hire_date) as varchar)
FROM employee
goAbraços
-
AutorPosts
- Você deve fazer login para responder a este tópico.