Vous avez besoin de deux colonnes :
- un pour la valeur, un flottant/double (ou un entier) qui peut être ordonné, utilisé dans des opérations telles que des sommes, etc.
- un pour la devise (un char(3) suivant la norme ISO 4217 ) utilisé à d'autres fins (affichage, éventuellement conversion, etc.)
Stocker à la fois la valeur et le symbole dans un varchar est un non-sens, d'autant plus que la position du symbole monétaire varie d'un pays à l'autre (peut être au début ou à la fin), il peut y avoir un espace entre le symbole et la valeur, ou pas, etc.
Cela étant dit, si vous ne voulez pas changer votre table, quelque chose comme ça pourrait fonctionner :
ORDER BY CAST(
REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
AS DECIMAL(10,2)
)