Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal,
Estou tendo um problema com um cliente meios chato. O ORDER by em questão puxa os alfabeticos na boa mas os numericos tendem a vir desta forma:
1,100,11,12,2,2000,2002,20000,21,517,8C,980
Queria saber se tem algum jeito de resolver e essa danação vir:
1,2,11,12,21,100,518,980,2000,2002,20000,8C
sacaram? no momento estou usando a query abaixo:
group = "SELECT * FROM " & tabela & objstr & " ORDER by nameesp"
[]s
Apenas complementando, testou com ASC ou DESC determinando assim se a ordenação será ascendente ou descendente ?
... ORDER by nameesp ASC"
pode testar também um format number após o order by
order by (FormatNumber(nameesp,2) ASC)
Pode ser que funcione, não testei.
Mas como o Salgado disse, é bom verificar o formato do campo no db e se possivel, altera-lo para numerico e ver se funciona da maneira esperada.
ou depois você usa o formatnumber(nameesp,2)
bem o campo é um alfanum mas infelizmente tem que ser alfanum. Só que alguns nomes são numericos e não tem como fazer uma tabela exclusiva para esses casos :(
Quanto a atribuição ASC, já tentei colocar ela mas não havia tanta necessidade já que o default é ASC caso não seja declarado.
[]s
Olá. use um split na vírgula para coloar todos os valores em uma array, e depois crie uma função que deixe os números em ordem e use o Join para voltar em sua forma original já ordenado.
Muito provavelmente o campo está como tipo TEXTO e não como numérico.