Tom55 0 Denunciar post Postado Fevereiro 29, 2012 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
Motta 645 Denunciar post Postado Fevereiro 29, 2012 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
Dii 15 Denunciar post Postado Março 1, 2012 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
Motta 645 Denunciar post Postado Março 2, 2012 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