Al ordenar un campo de tipo texto que contiene números el resultado puede no ser el esperado. Por ejemplo, tenemos una tabla de corredores de maratón en la que el dorsal, por alguna razón que no viene al caso, es de tipo texto.
Si hiciéramos una ordenación normal veríamos que el orden de los corredores no es el esperado. Pues el dorsal numero 2, por ejemplo, quedaría por detrás de todos lo que empiezan por 1.
Ejemplo:
La sentencia anterior nos daría como resultado los corredores ordenados de la siguiente forma: 1, 10, 11, 12, 13… 2, 20, 21…
Una solución para ordenar los corredores de forma natural sería:
Si hiciéramos una ordenación normal veríamos que el orden de los corredores no es el esperado. Pues el dorsal numero 2, por ejemplo, quedaría por detrás de todos lo que empiezan por 1.
Ejemplo:
SELECT * FROM corredores ORDER BY dorsal
La sentencia anterior nos daría como resultado los corredores ordenados de la siguiente forma: 1, 10, 11, 12, 13… 2, 20, 21…
Una solución para ordenar los corredores de forma natural sería:
SELECT * FROM corredores ORDER BY length(dorsal), dorsal




0 comentarios:
Publicar un comentario