Potřebujete dva sloupce:
- jeden pro hodnotu, float/double (nebo celé číslo), které lze seřadit a použít v operacích, jako jsou součty atd.
- jeden pro měnu (znak(3) podle standardu ISO 4217 ) používané pro jiné účely (zobrazení, možná konverze atd.)
Ukládání hodnoty i symbolu do varcharu je nesmyslné, zejména proto, že pozice symbolu měny se v jednotlivých zemích liší (může být na začátku nebo na konci), mezi symbolem a hodnotou může být mezera, nebo ne atd.
Jak již bylo řečeno, pokud nechcete změnit svůj stůl, něco takového by mohlo fungovat:
ORDER BY CAST(
REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
AS DECIMAL(10,2)
)