locosta 0 Denunciar post Postado Outubro 22, 2011 Prezados amigos, me socorre. Estou com um problema na hora de ordenar uma tabela. Tenho uma coluna que é VARCHAR que contem os valores, como exemplo abaixo: ! Valor ! ------------ 40.000,00 11.000,00 1.100.000,00 200.000,00 1.250.000,00 Na hora de ordenar eu ja tentei utilizar: order by abs(valor) Mais não adiantou continua ordenando errado ! Valor ! ------------ 1.100.000,00 1.250.000,00 11.000,00 40.000,00 200.000,00 Eu não faço mais a minima ideia do que pode ser. Segue o select SELECT * FROM `imoveis` order by abs(`Valor`) Obrigado a todos desde já... Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 22, 2011 tente ORDER BY CAST(VALOR AS NUMBER) mas trabalhe com a tipagem correta, evita este tipo de solução. Compartilhar este post Link para o post Compartilhar em outros sites
locosta 0 Denunciar post Postado Outubro 23, 2011 Mota, tentei mais nao deu certo. #1584 - Incorrect parameters in the call to stored function 'cast' Aparece esse erro. Quando executo o comando SELECT * FROM `imoveis` order by cast (`Valor` as number) Utilizo o banco MYSQL tente ORDER BY CAST(VALOR AS NUMBER) mas trabalhe com a tipagem correta, evita este tipo de solução. Compartilhar este post Link para o post Compartilhar em outros sites
Caio Cardoso 0 Denunciar post Postado Outubro 25, 2011 Cara, no lugar do CAST use o CONVERT: CONVERT(numeric(15,2), VALOR) Mas dependendo das configuraçoes regionais da sua maquina você tera um trabalhinho a mais... Por exemplo, aqui eu utilizo o padrão americano (separação de decimais por ponto exemplo:"40258.50"), ou seja, esse valor que você informa "40.558,40" não é um numero então você terá que utilizar a função REPLACE para remover os pontos e depois trocar as virgulas por ponto, desta forma: CONVERT(numeric(15,2), REPLACE(REPLACE(VALOR,'.',''),',','.')) utilize isso no seu order by e seja feliz =) Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 25, 2011 Não uso o Mysql assim não domino sua functions. Mas ... Volto a dizer, com a tipagem correta este tipo de problema não ocorre. Compartilhar este post Link para o post Compartilhar em outros sites