La Web del Programador: Comunidad de Programadores
 
    Pregunta:  54487 - ORDENAR POR LOS ULTIMOS 4 DIGITOS
Autor:  Alfonso Reyes
Que tal amigos.
Tengo en una base datos access una tabla de Productos
Necesito ordenar por codigo del producto que es de tipo caracter. de (9)
pero necesito que se ordene solo por los ultimos 4 caracteres.
Eje.
Select * from Productos Order By Productos.Codigo

Me han dicho que usando SUBSTRING(5,4)
o sea
Select * from Productos Order By SUBSTRING(Productos.Codigo, 5,4)

Pero no me funciona asi.
Les agradezco mucho si me pueden ayudar con este detalle.
Gracias y que Dios los Bendiga.

  Respuesta:  Nicolás Pailhé
Hola Alfonso.. una solución a lo que necesitas es la siguiente:

SELECT numeros.numeros, Right(LTrim([numeros]),4) AS [orden nro]
FROM numeros
ORDER BY Right(LTrim([numeros]),4);

'en mi ejemplo tengo una tabla que se llama numeros y un sólo campo que también se llama numeros.
creo una consulta (en access) en donde pido que me muestre el campo numeros y en la consulta creo el campo "orden nro" en donde le pido que sólo me muestre los ultimos 4 dígitos del campo numeros, entonces le pido que me ordene los registros por el campo "orden nro" en consecuencia los registros del campo numeros también estarán ordenados en forma ascendente.. espero que te sirva, saludos.. Nicolás