Como ordeno un campo caracter como numerico en un Select

24/02/2005 - 16:46 por Glenn Pavel | Informe spam
Hola a todos

mi consulta es algo sencilla,

hize una sentencia sql donde tengo numero de cheques cuando hago el order
by cheques.numero
me ordena 1,10,11,12,...2,20,21

lo que quiero es que lo ordene numericamente pero obviamente el campo es
caracter..

alguna idea mis amigos

Saludos




Glenn Pavel
Jefe computo
Tranycop

Preguntas similare

Leer las respuestas

#6 Hugo M. Ranea
25/02/2005 - 19:20 | Informe spam
Oh también:

SELECT VAL(Cheques.Numero) AS NroJustificado, Cheques.* ;
FORM Cheques ;
ORDER BY 1

Que tiene una leve ventaja, en mi opinión sobre transform o padl, ya que no importa cuantos caracteres tiene tu campo, ya que si
usas, por ejemplo padl(, 5) o transform(, '@L 99999') y luego modificas el campo Numero para que tenga 10 caracteres, ambas
expresiones pueden dejar de funcionar. La solución sería padl( , len(numero), '0') o transform(, '@L ' + replicate('9',
len(numero)), por lo que me parece que VAL() es una mejor alternativa, SIEMPRE Y CUANDO el campo Numero tenga menos de 15
caracteres, si sospechas que pude en el futuro pude ser > 15 caracteres, entonces usaría la expresion padl( , len(numero), '0') (en
realidad el '0' no es necesario, espacios funcionan igual

Glenn Pavel wrote:

Hola a todos

mi consulta es algo sencilla,

hize una sentencia sql donde tengo numero de cheques cuando hago el order
by cheques.numero
me ordena 1,10,11,12,...2,20,21

lo que quiero es que lo ordene numericamente pero obviamente el campo es
caracter..

alguna idea mis amigos

Saludos




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida