Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tom55

orderby

Recommended Posts

olá!

 

galera...

 

tenho uma consulta e preciso ordenar ela. até aí tudo certo, o problema está em um campo da minha ordenação em que os dados estão +/- assim.

 

2.10.1

2.11.2

2.2.1

 

só que eu precisaria ordenar isso por

2.2.1

2.10.1

2.11.2

 

como posso fazer isso?

 

este campo é varchar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive um problema assim com Oracle, não consegui resolver via SQL, criei uma coluna chamada ORDEM (numérica) e ordenei por ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Correto.

O que é mais inteligente de se fazer. Ou...

 

Eu faria algo mágico. Retornaria toda a busca para o lado server-side e lá tratava esses dados e ordenava, o que pode ser um problema se você tem 3000 registros ^^

 

Acredito que a forma mais viável de se fazer seja adicionando um campo para ordenação, como o amigo acima disse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma possível solução me ocorreu agora.

 

Pense

2.2.1

2.10.1

2.11.2

 

Como números numa base 100 , 100 mesmo.

 

Assim :

 

 

2.2.1 = 2 x 1002 + 02 x 1001 + 1 x 1000 = 20200

2.10.1 = 2 x 1002 + 10 x 1001 + 1 x 1000 = 21000

2.11.2 = 2 x 1002 + 11 x 1001 + 1 x 1000 = 21100

 

 

Uma FUNCTION recebe a string, "desmonta" a dita cuja e calcula o retorno.

O order by é com a FUNCTION.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.