Mysql
 sql >> Datenbank >  >> RDS >> Mysql

ORDER BY für Währungswerte

Sie benötigen zwei Spalten:

  • Eine für den Wert, ein Float/Double (oder eine ganze Zahl), die geordnet werden kann und in Operationen wie Summen usw. verwendet wird.
  • einer für die Währung (ein Zeichen(3) nach ISO-4217-Standard ). ) für andere Zwecke verwendet (Anzeige, evtl. Konvertierung etc.)

Es ist unsinnig, sowohl den Wert als auch das Symbol in einem Varchar zu speichern, zumal die Position des Währungssymbols von Land zu Land unterschiedlich ist (kann am Anfang oder am Ende stehen), zwischen dem Symbol und dem Wert kann ein Leerzeichen stehen. oder nicht usw.

Davon abgesehen, wenn Sie Ihre Tabelle nicht ändern möchten, könnte so etwas funktionieren:

ORDER BY CAST(
  REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
  AS DECIMAL(10,2)
)