Трябват ви две колони:
- един за стойността, float/double (или цяло число), които могат да бъдат подредени, използвани в операции като суми и т.н.
- един за валутата (знак (3) след стандарт ISO 4217 ) използвани за други цели (показване, може би преобразуване и т.н.)
Съхраняването както на стойност, така и на символ вътре в varchar е безсмислено, особено тъй като позицията на символа на валутата варира от страна до държава (може да бъде в началото или в края), може да има интервал между символа и стойността, или не и т.н.
Като се има предвид това, ако не искате да промените масата си, нещо подобно може да работи:
ORDER BY CAST(
REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
AS DECIMAL(10,2)
)