Cela devrait fonctionner. Avez-vous essayé d'afficher ce que votre CAST(row AS DECIMAL) produit ?
Collez un exemple de données que vous essayez de trier. Peut-être avez-vous des valeurs nulles ou des nombres qui ne peuvent pas tenir dans le type décimal.
Quelle version de mysql tu utilises ? Peut-être que la raison est la suivante (de l'aide de mysql):