2つの列が必要です:
- 1つは値、float / double(または整数)で、順序付けが可能で、合計などの操作で使用できます。
- 通貨用に1つ( ISO4217標準 に続くchar(3) )他の目的(表示、変換など)に使用されます
値と記号の両方をvarchar内に格納することは意味がありません。特に、通貨記号の位置は国によって異なるため(最初または最後にあります)、記号と値の間にスペースがある可能性があります。かどうかなど
そうは言っても、テーブルを変更したくない場合は、そのようなことがうまくいく可能性があります:
ORDER BY CAST(
REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
AS DECIMAL(10,2)
)