Potrzebujesz dwóch kolumn:
- jeden dla wartości, liczba zmiennoprzecinkowa/podwójna (lub liczba całkowita), którą można uporządkować, użyć w operacjach takich jak sumowanie itp.
- jeden dla waluty (znak(3) zgodny z norma ISO 4217 ) używane do innych celów (wyświetlanie, może konwersja itp.)
Przechowywanie zarówno wartości, jak i symbolu w varchar nie ma sensu, zwłaszcza że pozycja symbolu waluty różni się w zależności od kraju (może być na początku lub na końcu), może być spacja między symbolem a wartością, czy nie itp.
Biorąc to pod uwagę, jeśli nie chcesz zmieniać stołu, coś takiego może zadziałać:
ORDER BY CAST(
REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
AS DECIMAL(10,2)
)