Order by
Olá pessoal,
Tenho uma aplicação onde o campo código fica ordenado da seguinte maneira, mesmo com order by codigo:
1
10
11
12
13
2
3
4
Gostaria de ordena-los normalmente:
1
2
3
4
5
6
7
8
9
10
11
Alguem pode me ajudar, o campo codigo é VARCHAR(10) CHARACTER SET WIN1252 NOT NULL
Obrigado.
Tenho uma aplicação onde o campo código fica ordenado da seguinte maneira, mesmo com order by codigo:
1
10
11
12
13
2
3
4
Gostaria de ordena-los normalmente:
1
2
3
4
5
6
7
8
9
10
11
Alguem pode me ajudar, o campo codigo é VARCHAR(10) CHARACTER SET WIN1252 NOT NULL
Obrigado.
Leandrosl2
Curtidas 0
Respostas
Marcio.theis
25/10/2004
tente o seguinte.....
faça o seu select....
select cast(nuregistro as Integer), nmregistro, dtregistro
order by 1
o que quero lhe dizer é que você deve passar o seu campo para inteiro usando o cast, mas no order by você deve de utilizar a posição que ele se encontra no sql, como neste exemplo 1. Pois se você utilizar o order by nuregistro ira ordenar pelo varchar.
Espero ter ajudado....
faça o seu select....
select cast(nuregistro as Integer), nmregistro, dtregistro
order by 1
o que quero lhe dizer é que você deve passar o seu campo para inteiro usando o cast, mas no order by você deve de utilizar a posição que ele se encontra no sql, como neste exemplo 1. Pois se você utilizar o order by nuregistro ira ordenar pelo varchar.
Espero ter ajudado....
GOSTEI 0
Leandrosl2
25/10/2004
O meu select ta assim:
select * from CADCLI
order by codigo
como ficaria, pois não entendi o que vai ser o nuregistro, mnregistro e dtregistro.
select * from CADCLI
order by codigo
como ficaria, pois não entendi o que vai ser o nuregistro, mnregistro e dtregistro.
GOSTEI 0
Gandalf.nho
25/10/2004
Esse campo CAD_CLI tem que ser VARCHAR? Porque ordenar um campo string é diferente dum campo numérico. Você pode fazer pelo exemplo do colega, só que aí não será usado o índice (se houver)
GOSTEI 0
Marcio.theis
25/10/2004
os campos que coloquei foram somente de exemplo, para funcionar o que lhe passei seria necessario colocar todos os campos necessários para o seu sql, pois usando o comando *, você podera ter problemas futuros com registros, pois depois que você tiver uns 20.000 registro na tabela e der um select * podera lhe traz -1 registros, isto já me aconteceu, e a solução foi descrever no sql somente os campos que eu desejo, fora que se ganha um melhor desempenho..
GOSTEI 0
Leandrosl2
25/10/2004
Muito obrigado amigos, voces resolveram meu problema!
Abraços.
Abraços.
GOSTEI 0