Ciao,
il campo nel database è definito come stringa? secondo l'output si direbbe di si. Che database stai utilizzando? Cerca nella documentazione, o comandi sql, l'operando di CAST.
Ad esempio (valido in mysql):
hai un campo in una tabella `ordinamento` definito come stringa.
se fai SELECT ordinamento FROM tabella ORDER BY ordianmento ASC; oterrai
0, 1, 10, 11, 12, 2, 3 ...
facendo
SELECT ordinamento FROM tabella ORDER BY CAST(ordinamento AS UNSIGNED );
dovresti ottenere
0, 1, 2, 3, ... 9, 10, 11 ecc ecc