Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   order by sql (http://www.forosdelweb.com/f21/order-sql-182914/)

soud 15/02/2004 12:37

order by sql
 
tengo una duda con el order by, cuando quieres ordenar numeros, sql no los odenena bien, por ejemplo cuando escribo esto:

select * from tabla order by id ASC

y los id van del 1 al 20
aparece ordenado pero parece que no distingue entre el numero de cifras que tiene un numero, aparece antes el 10 al 19 que el 2, como puede hacer para que aparescan bien ordenados, del 1 al 20.

peleo 15/02/2004 13:11

Pues cuando he leido tu pregunta me ha parecido algo raro, porque a mi eso no me ha pasado. Yo uso MySql. He ido al phpAdmin y he hecho una prueba y me ordena los ids perfectamente. No sé si es porque usas otra base de datos...

soud 15/02/2004 13:53

esos eran numerod de ejemplo, intenta con
1234567, 23456 y 790, a mi me aparecerian en ese orden, aunque le pusiera ASC

Giorgio 15/02/2004 17:38

Hmm...

Ya checaste el formato del campo de ID ..? longitud de caracteres, único, autonumerico, sin signo, etc...?


Que formato de BD de datos usas (mySQL?)



Saludos

Jorge Garza

Teri 16/02/2004 04:47

Eso suena a que le campo id es un texto, y claro.... para un texto 12 es mayor que 2, tienes algunas opciones, convertir ese campo en numérico, hacer que la select ordene ese campo como si fuera numérico.

select * from tabla order by convert(int, id) ASC

o actualizar la información de la tabla y rellenar con ceros por la izquierda, hasta una longitud determinada, así 012, sería mayor que 002 :-)

Estas opciones tienen su peligro, si es una tabla que ya tiene información y aplicaciones trabajando con ella, puede que alguno deje de funcionar, si conviertes esos datos a numéricos, además, si existiera algún texto, no lo convertiría, y perderías información.

Si haces la select convirtiendo en numérico, te dará un error si encuentra un texto y no lo puede convertir, y si pones los ceros delante, el problema de datos que pierdan relación lo tendrías igual que en el priimer caso

Un saludo y suerte :adios:

soud 16/02/2004 17:43

gracias por la ayuda


La zona horaria es GMT -6. Ahora son las 10:44.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.