Order by

Firebird

25/10/2004

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.


Leandrosl2

Leandrosl2

Curtidas 0

Respostas

Marcio.theis

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....


GOSTEI 0
Leandrosl2

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.


GOSTEI 0
Gandalf.nho

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

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

Leandrosl2

25/10/2004

Muito obrigado amigos, voces resolveram meu problema!

Abraços.


GOSTEI 0
POSTAR