Ir para conteúdo

POWERED BY:

Arquivado

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

locosta

Ordenação

Recommended Posts

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

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

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

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

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

×

Informação importante

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