El problema es el siguiente tenemos un campo en la talba que es varchar, y dentro tenemos valores como
select * from tabla order by id
1
2
20
3
34
Como se puede apreciar al hacer el select order by ese campo nos muestra una ordenacion semantica, es decir alfabeticamente por eso poner un valor 20 antes que el 3, lo que hacemos es convertir ese id en numerico y mandamos la ordenacion, en definitiva creamos un varchar o string a numerico y ordenamos
select * from tabla order by CONVERT(id, signed) ASC