Tema: order by sql
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/02/2004, 04:47
Teri
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 1 mes
Puntos: 0
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